Opa
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
Opa
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
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: