Usando Criteria no JPA2

3 respostas
bruno.neves

Galera, estou com um problema quando uso a clausula “where” na criteria do JPA2, segue o exemplo abaixo.

class Usuario {
      int id;
      String nome;
      String login;
   }

Gostaria de realizar essa consulta com a criteria, seria uma consulta (que seleciona o nome e/ou o login)

em = emf.createEntityManager();
        CriteriaBuilder queryBuilder = em.getCriteriaBuilder();
        CriteriaQuery<Usuario> qdef = queryBuilder.createQuery(Usuario.class);

Até aqui esta certo, mas não sei uma forma de implementar o select com “where” usando esse conceito.

Obrigado

3 Respostas

thiagotn

Acho que este link pode te ajudar.

Ficaria algo parecido com isto:

em = emf.createEntityManager();
CriteriaBuilder queryBuilder = em.getCriteriaBuilder();
CriteriaQuery<Usuario> qdef = queryBuilder.createQuery(Usuario.class);
List<Usuario> usuarios = qdef.from(Usuario.class);
qdef.select(usuarios)
	.where(queryBuilder.equal(usuarios.get("name"),"João da Silva"));
bruno.neves

Obrigado por responder, porem gostaria de usar o like ao inves do equals, mas valew

bruno.neves

RESOLVIDO -
TypedQuery tq = em.createQuery(cq.select(usuario).where
(cb.like(usuario.get(“nomeCompleto”) , “%Segundo%”),
cb.like(usuario.get(“login”) , “%b%”) ));

Criado 30 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 3
Participantes 2