Busca com JPA

4 respostas
anderson.bonavides

Oi pessoal estou com uma duvida que não me sai da cabeça. Como realizar uma busca em JPA passando por exemplo um e-mail e obter o resto das informações do usuário?

4 Respostas

pablofaria

Pode usar um objeto Query

Query query = getEm().createQuery("SELECT br.com.model.NomeDoObjeto where email=?");
query.setParameter(1, "[email removido]");

//quando for apenas um objeto 
ObjetoASerRecuperado objeto = (ObjetoASerRecuperado) query.getSingleResult();

//quando for uma lista de objetos
List objetos = query.getResultList();
anderson.bonavides

Ahh com query legal. O pior é que tento dessa forma mas nunca consigo sucesso.

:’(

public Usuario buscarUsuario(String email) { EntityTransaction transaction = manager.getTransaction(); Usuario retorno = null; try { transaction.begin(); Query query = manager.createQuery("SELECT u FROM Usuario u WHERE u.email = :email"); query.setParameter("email", email); retorno = (Usuario) query.getSingleResult(); } catch (Exception e) { transaction.rollback(); System.err.println("Erro: " + e.getMessage()); } finally { manager.close(); } return retorno; }

Quando retorna vem só o e-mail.

:frowning:

pablofaria

tenta colocar no select somente o FROM mais o nome completo da classe e depois a cláusula

ex.:

Query query = manager.createQuery("FROM pacotes.maispacotes.Usuario WHERE email = :email");

Outra coisa, o EntityTransaction não cria queries e sim o EntityManager

anderson.bonavides

É percebi que está vindo todo mundo mesmo. Mas na hora de exibir nao exibe todo mundo. O erro não é no JPA.

:frowning:

Criado 23 de maio de 2008
Ultima resposta 23 de mai. de 2008
Respostas 4
Participantes 2