[RESOLVIDO] Dúvida com criteria. Trazer resultado no qual seja o valor 1 e 3
5 respostas
J
jonatex
Tenho uma criteria que traz um resultado que o campo seja igual a 3.
Como faço para ele trazer o resultado da coluna onde seja igual a 3 e igual a 1 também.
Cara não sei se sou eu, mas não consegui ler seu código. Está com muitos add seguidos, tenta dar uma melhorada! De repente o problema é até este. :thumbup:
Mas acho que a solução deve ser o Restrictions.and(Criterion,Criterion). Segue um exemplo:
Eu sugiro a vc criar uma lista de Criterions e passar para sua classe DAO (se tiver), onde ela faça com que a Criteria receba esta lista:
Criteriacrit=ss.createCriteria(getClasseDAO());if(listaRestrictions!=null&&!listaRestrictions.isEmpty()){
for(inti=0; i < listaRestrictions.size(); i++){
crit.add(listaRestrictions.get(i));}
}
returncrit.list();
Até +!
J
jonatex
Vo te explicar o meu código. Primeiro ele vai pegar todos os usuarios com autorizacao 3, exceto o usuario logado.
Esse createAlias é o relacionamento de duas tabelas.
M
Murilo_Ferreira
Tenta algo assim.
Criteria crit = session.createCriteria(Usuario.class);
Criteria suppCrit = crit.createCriteria("autorizacao");
suppCrit.add(Restrictions.eq("id", 3 ));
List results = crit.list();//lista usuários com autorização 3
Murilo, ja resolvi meu problema. Da forma que está seu código ele só traz de autorização igual a 3, porem eu quero traze 3 e 1. Para resolver esse problema pus o seguinte código