Boa noite uaihebert.
Estou começando a utilizar a EasyCriteria =D
Estou com uma duvida.
Estou com o seguinte cenario:
Entidades:
Pessoa
PessoaEndereco
Cidade
Estado
Pessoa se relaciona com PessoaEndereco que se relaciona com Cidade que se relaciona com Estado.
Uma pessoa tem 3 endereços:
Correspondência, Cobrança e entrega.
Preciso listar todos os clientes de um Estado.
Tentei fazer da seguinte forma:
EasyCriteria<Pessoa> criteria = EasyCriteriaFactory.createQueryCriteria(entityManager, Pessoa.class);
criteria.innerJoin("enderecos");
criteria.andEquals("enderecos.tipoEndereco", "1"); //aqui tentei usar somente o endereço 1 mas não deu certo...
criteria.innerJoin("enderecos.cidade");
criteria.innerJoin("enderecos.cidade.estado");
criteria.andStringIn("enderecos.cidade.estado.uf", ufs);
quando executo, me traz varias vezes o mesmo cliente pelo fato de eu ter mais de um endereço.
gostaria de fazer um filtro para pegar somente o endereço de correspondência(1) e não todos os três.
como posso fazer? tentei usar criteria.andEquals("enderecos.tipoEndereco", "1") mas não tive muito sucesso.
Pode me ajudar?
O que seria “mas não deu certo”?
Veja que “não deu certo” pode ser uma exceção, pode ser uma falha na construção da query ou pode ser que você não tenha gostado do resultado, simplesmente.
Olá.
Primeiro obrigado pela resposta.
Quiz dizer com “mas não deu certo” é que resultou em um plano cartesiano, trazendo a mesma pessoa mais de uma vez.
Obrigado
Opa, que bom que você escolheu usar o easycriteria! =D
Se o problema é as pessoas repetidas, você tentou usar com o distinct? (desculpe, ñ li todo o post apenas o problema, se ñ funcionar com o distinct eu olho tudo).
Tá corrido aqui com post que estou acabando, review de livro e mais mil coisas!
Opa,
Obrigado pela resposta.
Siim, a easyCriteria pelo que vi é muito boa e poupa muito tempo também.
Parabens =D
Sim, com distinct funciona sem problemas, mas queria saber o porque de estar dando pessoas duplicadas na minha consulta.
Talvez estou montando errado a consulta com a criteria.
Obrigado
[quote=fabiocesar.ti]Opa,
Obrigado pela resposta.
Siim, a easyCriteria pelo que vi é muito boa e poupa muito tempo também.
Parabens =D
Sim, com distinct funciona sem problemas, mas queria saber o porque de estar dando pessoas duplicadas na minha consulta.
Talvez estou montando errado a consulta com a criteria.
Obrigado[/quote]
Duplicou por causa dos joins. provavelmente por que achou mais de um cidade/estado e com isso saiu duplicando. É coisa de SQL mesmo. =/
Simm
pode haver mais de uma cidade estado para uma mesma pessoa pois existem 3 tipos de endereço.
posso resolver com o distinct, mas queria saber a causa 
Tens um manual da EasyCriteria para mim estudar?
Obrigado e parabéns mais uma vez.
[quote=fabiocesar.ti]Simm
pode haver mais de uma cidade estado para uma mesma pessoa pois existem 3 tipos de endereço.
posso resolver com o distinct, mas queria saber a causa 
Tens um manual da EasyCriteria para mim estudar?
Obrigado e parabéns mais uma vez.[/quote]No site do projeto tem todos os métodos explicados lá.
Obrigado pelo apoio.