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?
Pode usar um objeto Query
Query query = getEm().createQuery("SELECT br.com.model.NomeDoObjeto where email=?");
query.setParameter(1, "p.fariapablo@gmail.com");
//quando for apenas um objeto
ObjetoASerRecuperado objeto = (ObjetoASerRecuperado) query.getSingleResult();
//quando for uma lista de objetos
List objetos = query.getResultList();
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.
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
É percebi que está vindo todo mundo mesmo. Mas na hora de exibir nao exibe todo mundo. O erro não é no JPA.