Criteria Dois Campos

3 respostas
MarceloNeo

Olá,
Tenho uma critiria que executa normalmente…
insere alguns campos dinamicamente…

TEm uma coisa que não estou entendendo…
quando passo o campo a1 retorna 2 linhas,
quando passo o campo a2 retorna 2 linhas,

quando passo os 2 juntos não retorna nenhuma linha…
estou usando assim

//campo a1

criteria.createAlias("cepId", "cep");			
criteria.createAlias("cep.cityId", "city");
criteria.add(Restrictions.like("city.name", consultCity, MatchMode.ANYWHERE));

//campo a2 
criteria.createAlias("cepId", "cep");
.criteria.add(Restrictions.like("cep.street", consultStreet, MatchMode.ANYWHERE));

Alguma dica desse para esse meu problema?

3 Respostas

fabio.cbrandao

Quando vc passa as duas condições juntas ele deve estar fazendo um WHERE com AND para vc fazer retornar as 4 linhas deve ser algo do tipo assim

criteria.createAlias("cepId", "cep");             
criteria.createAlias("cep.cityId", "city");  
criteria.add(Restrictions.or(Restrictions.like("city.name", consultCity, MatchMode.ANYWHERE), 
				Restrictions.like("cep.street", consultStreet, MatchMode.ANYWHERE)));
MarceloNeo

Olá Fabio Obrigado pela dica,

//Uma pergunta criteria.add(Restrictions.or(Restrictions.like("city.name", consultCity, MatchMode.ANYWHERE), Restrictions.like("cep.street", consultStreet, MatchMode.ANYWHERE))); É Diferente disso?

criteria.add(Restrictions.or(Restrictions.like("city.name", consultCity, MatchMode.ANYWHERE));
 criteria.add(Restrictions.like("cep.street", consultStreet, MatchMode.ANYWHERE)));

Deveria trazer sempre 2 resultados, por exemplo… cidade … rua…

"Santos" //duas linhas "Rua Figueiredo" // duas linhas

se eu passa um parametro por vez eles me traz 2 linhas…
se passo os dois juntos não traz nada… deveria trazer as mesmas duas linhas…
pois ambas as condições são verdadeira, ou não funciona assim?
em si o que eu não estou conseguindo entender… é isso

fabio.cbrandao

Cara para saber se os dois são diferentes eu teria q dar uma olhada no SQL gerado pelo Hibernate, executa essas duas condições na sua app e envia o SQL gerado pelo hibernate para eu dar uma olhada.

Criado 26 de novembro de 2010
Ultima resposta 26 de nov. de 2010
Respostas 3
Participantes 2