Tenho dois selectItems gostaria de quando eu escolher um o outro automaticamente selecione um grupo …
O primeiro mostra as profissões ai de acordo com a profissão selecionada no segundo selectItem so vai trazer as pessoas que estão naquela profissão …
Atualmente eu marco a profissão e ele retorna todas as pessoas de todas as profissões …
Existe algum evento que eu chame na jsp para resolver isso ?
Ou alguma forma de fazer um “query dinâmica” .
Desde já agradeço a todos …
Qual a query que você está fazendo atualmente? ao meu ver ela não precisa ser dinâmica.
lele_vader
Você não precisa de consulta dinâmica mesmo não.
Crie um método ajax, que retorna uma list da outra select e mande um update do componente do selectItem das profissões.
{
QuerydynaQuery=getConexao().createQuery("select distinct(a.area) FROM AreaPerito a order by a.area");returndynaQuery.getResultList();}
QuerydynaQuery=getConexao().createQuery("select DISTINCT(p.nome) From Perito p order by p.nome ");returndynaQuery.getResultList();
Rodrigo_Sasaki
a ideia da query não é buscar as pessoas levando em consideração a profissão? você vai ter que fazer um join com uns wheres aí. Sabe fazer isso?
Matheus_Paiva
publicclassPeritoimplementsSerializable{@Id@Column(name="Nome")privateStringnome;@Id@Column(name="AreaPerito")privateStringareaPerito;@Column(name="Vara_restrito")privateStringvaraRestrito;@Column(name="Atualizacao")privateStringatualizacao;@Column(name="NuDoc")//cpfprivateStringnumeroDocumento;@Column(name="NuCRC")//numero do conselhoprivateStringnumeroCRC;@Column(name="NuPis")privateStringnumeroPis;@Column(name="NuINSS")privateStringnumeroInss;@Column(name="NuISS")privateStringnumeroIss;@Column(name="NuIdentidade")privateStringnumeroIdentidade;@Column(name="IdDtEmissao")privateStringidDtEmissao;@Column(name="DtNascimento")privateStringdtNascimento;@Column(name="NomeMae")privateStringnomeMae;@Column(name="Logradouro")privateStringlogradouro;@Column(name="Numero")privateStringnumero;@Column(name="Complemento")privateStringcomplemento;@Column(name="Bairro")privateStringbairro;@Column(name="Cep")privateStringcep;@Column(name="Cidade")privateStringcidade;@Column(name="Uf")privateStringuf;@Column(name="PtReferencia")privateStringptReferencia;@Column(name="Telefone1")privateStringtelefone1;@Column(name="Telefone2")privateStringtelefone2;@Column(name="Fax")privateStringfax;@Column(name="email")privateStringemail;@Column(name="Banco")privateStringbanco;@Column(name="Conta")privateStringconta;@Column(name="Obs")privateStringobs;@Column(name="Atende_Jef")privateBooleanatendeJef;@Column(name="Bloqueado")privateStringbloqueado;@Column(name="RecInss")privateBooleanrecInss;@Column(name="RecIss")privateBooleanrecIss;@Column(name="RecInssIss")privateStringrecInssIss;@Column(name="ObsSuspensao")privateStringobsSuspensao;@Column(name="SenhaPerito")privateStringsenhaPerito;@Column(name="PrimCodSiap")@Temporal(javax.persistence.TemporalType.DATE)privateDatePrimCodSiap;@Column(name="Agencia")privateStringagencia;@Column(name="Profissao")privateStringprofissao;gets,sets,equalsehashcodeomitidos....
Nunca trabalhei com ajax tem algum exemplo ai ?
Matheus_Paiva
Sei … vou fazer … Valeu Digão …
Valeu Lele_vader
lele_vader
Temos um problema aí.
As suas classes não se relacionam.
Você repetiu atributos nas 2 classes, porque ?
Por exemplo a Àrea e o Perito tem profissão.
Um perito não é de uma área ?Então ele tem um relacionamento de M:1 com a area.
A profissão é relacionada como com a Area ? 1 Àrea tem 1 profissão ?
Matheus_Paiva
Lele … eu nao coloquei ainda os relacionamentos na minha classe mas um perito pode ser de várias areas …
E eu tenho uma chave primária composta … CodArea e Nome …
To montando parte por parte ainda dele …
lele_vader
Beleza.
Só fica a dúvida de porque o atributo profissão está em Àrea e Perito.
Matheus_Paiva
Eu vi tal campo agora … já o removi …
Rodrigo_Sasaki
Matheus Paiva:
Lele … eu nao coloquei ainda os relacionamentos na minha classe mas um perito pode ser de várias areas …
E eu tenho uma chave primária composta … CodArea e Nome …
To montando parte por parte ainda dele …
Só um adendo não relacionado ao tópico. Sempre que for possível evite usar chaves compostas. Claro que o JPA consegue tratar elas muito bem, mas você pode se poupar dores de cabeça com mapeamentos, e exceções inexplicáveis do provider (principalmente Hibernate, na minha experiência) que são trabalhosas de entender e resolver.
Matheus_Paiva
Digao … eu não sou muito fã de chaves compostas mas estou pegando de um sistema que roda em vb e passando para java … utilizando os campos da base de dados … Ou seja tenho que seguir tal sequencia …
lele_vader
Considerando que um perito pode estar em muitas áreas e cada área tem uma profissão acho que o sql pode ser assim
“FROM Perito p join p.areas”
Isso vendo por alto.
Sobre como fazer uma requisição ajax você pode ver no link abaixo.
Acho que você vai ter que ter uma lista de Areas, daí com o ajax você passa um objeto de um Perito e chama um método que traga o objeto de perito com as Áreas.
Daí você pega as áreas dele e coloca nessa lista que seta o selectItens das áreas e dá render nesse componente.