Duvida Hibernate: como fazer um 'ou'?

Opa :smiley:

Existe alguma forma de eu criar uma query que eu posso fazer um ‘ou’ ex: selecione nome onde estado=S’ ou cidade like %a’

É possível eu fazer isso? Como ficaria no hibernate?

[]'s

COmo é o ou em SQL? OR, mesma coisa em HQL =p

select nome from UsuarioBean u where u.nome = ‘Mizael’ or u.sobrenome = ‘Montenegro’

[quote=davidpadilha]Opa :smiley:

Existe alguma forma de eu criar uma query que eu posso fazer um ‘ou’ ex: selecione nome onde estado=S’ ou cidade like %a’

É possível eu fazer isso? Como ficaria no hibernate?

[]'s[/quote]

Procure por Restrictions.or e Restrictions.like
http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html

Tente algo nesse sentido:

[code]
Session session = HibernateUtil.currentSession();
session.beginTransaction();
Query query = session.createQuery(“from Usuario u” +
" where u.idPessoa.nome=’"+nome+
"’ and u.idPessoa.email=’"+email+
"’ and u.login=’"+login+
"’ and (u.perfil=‘E’ or u.perfil=‘U’)");
List<Usuario> lista = query.list();

[code]

Para isso você deve usar a classe Disjunction:

public List<Produto> buscaPorNomeOuDescricao(String palavra) { Criteria c = session.createCriteria(Produto.class); Disjunction disjunction = Restrictions.disjunction(); disjunction.add(Restrictions.ilike("nome", palavra, MatchMode.ANYWHERE)); disjunction.add(Restrictions.ilike("descricao", palavra, MatchMode.ANYWHERE)); c.add(disjunction); return c.list(); }SQL gerado:

Hibernate: select this_.id as id1_0_, this_.descricao as descricao1_0_, this_.nome as nome1_0_ from Produto this_ where ( lower(this_.nome) like ? or lower(this_.descricao) like ? )
Blz? Flw! :thumbup: