Pessoal, estou com o seguinte problema:
Tenho que fazer uma consulta no banco de dados e não sei como consultar. Esta consulta fazia pesquisa de um usuário que tinha acabado de ser inserido. A pesquisa é feita através do ID. Como vou fazer uma consulta se não sei o ID do usuário?
Pelo que tentei o método find tem que conter um id como ultimo parâmetro. Não pode conter um parâmetro diferente.
Segue o código de consulta:
public Usuario pesquisarUsuario(Integer id, Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
Usuario retorno = null;
try {
transaction.begin();
retorno = (Usuario) manager.find(Usuario.class, id);
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
return retorno;
}
Pessoal fazendo algumas pesquisas encontrei a uma possivel sulução. Porém não rola
public Usuario pesquisarUsuario(String login, String senha) {
EntityTransaction transaction = manager.getTransaction();
Usuario retorno = null;
try {
transaction.begin();
Query query = manager.createQuery("SELECT u FROM Usuario u WHERE u.login = :login AND u.senha = :senha");
query.setParameter("login", login);
query.setParameter("senha", senha);
Usuario usuario = (Usuario) query.getSingleResult();
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
return retorno;
}
Pessoal não ta retornando nenhum usuário. :~(
Pessoal problema resolvido. Desculpem o tópico. O usuario que recebe a query está errado.
Sabem como é né, uma madrugada aki, uma pesquisada ali uma debugada e depois de muito apanhar enxergamos o erro besta.
=]
De qualquer forma desculpem.