Hibernate Criteria - Como fazer conjunção (ex. select… where condicao1 OR condicao2 )
exemplo:
tipo Empresa.class
select * from tabela_empresa where id=1 or id=2;
pra uma condicao eu uso
criteria.add( Expression.eq(“id”,1) );
e pra conjuncao?
Hibernate Criteria - Como fazer conjunção (ex. select… where condicao1 OR condicao2 )
exemplo:
tipo Empresa.class
select * from tabela_empresa where id=1 or id=2;
pra uma condicao eu uso
criteria.add( Expression.eq(“id”,1) );
e pra conjuncao?
Se não me engano é assim
criteria.add(Restrictions.or(Expression.eq("id",1),Expression.eq("id",2));
tipo…
funcionou…
mas eu preciso fazer a pesquisa com um array de inteiros de tamanho variável!

Cara,
Porque você não tenta usar o “IN”, para sair algo do tipo
Não sei pq não me lembro direito, mas se eu não me engano, o Expression.in aceita uma coleção de valores
Collection<Long> idsEmpresas = ...;
criteria.add(Expression.in("id",idsEmpresas));
Tente ai!
Flw,
Renan
blz… RESOLVIDO! Obrigado!
Integer[] ids = new Integer[]{1,2,3,4};
criteria.add( Expression.in("id", ids) );
Caro amigo Mark_Ameba
Gostaria de uma ajuda:
Tenho que fazer uma consulta para retornar um list de pedidos, onde os mesmos terão que ser de uma determinada regiao. Sendo que o cidadao que está logado omente podera ver esses pedidos da mesma regiao, acho que é algo parecido como exemplo abaixo:
public List getLista(String mat, String id_regiao) throws SQLException {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List ListaPed;
String hql = “select * from pedido where id_regiao=:id_regiao and mat=:mat”;
//String hql = “select * from pedido where id_regiao=? and mat=?”;
Query q = session.createQuery(hql);
q.setParameter(“id_regiao”, id_regiao).list();
q.setParameter(“mat”, mat);
ListaPed = q.list();
session.getTransaction().commit();
return ListaPed;
}
Este exemplo é o Dao.
Agradeço a ajuda