Fórum Função do postgres no JPA #488601
11/08/2014
0
Gostaria de saber se existe alguma forma de usar uma função do banco de dados no JPA(no meu caso uso postgreSQL), a função do banco é de autenticar o usuário, onde ela retorna um valor booleano, porém quando eu vou usar no JPA utilizando o createNativeQuery(), só retorna o valor false, alguém conhece alguma outra solução.
Desde já agradeço pela colaboração.
Att.
Luis Camilo
Curtir tópico
+ 0Posts
12/08/2014
Ronaldo Lanhellas
Gostei + 0
12/08/2014
Luis Camilo
Segue abaixo o código:
private Boolean solicitaFuncaoAutenticar(String usuario, String senha) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("controleFinanceiro");
EntityManager em = emf.createEntityManager();
Query query = em.createNativeQuery("SELECT controle.function_login_usuario(?,?) ");
query.setParameter(1, usuario);
query.setParameter(2, senha);
System.out.println(query.getSingleResult());
return (Boolean) query.getSingleResult();
}
O código real é semelhante a esse, a função do banco de dados está correta, pois usei o padrão JDBC e funcionou normalmente, só que nesse caso a função só está retornando falso.
Desde já agradeço pela atenção.
Att.
Gostei + 0
12/08/2014
Ronaldo Lanhellas
1 - Primeiro crie sua namedQuery :
@NamedQueries({
@NamedQuery(name = "ControleFinanceiro.funcaoLoginUsuario", query = "SELECT controle.function_login_usuario(:usuario,:senha)")
})
2 - Agora vamos usá-la:
private Boolean solicitaFuncaoAutenticar(String usuario, String senha) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("controleFinanceiro");
EntityManager em = emf.createEntityManager();
Query query = em.createNamedQuery("ControleFinanceiro.funcaoLoginUsuario");
query.setParameter(":usuario", usuario);
query.setParameter(":senha", senha);
System.out.println(query.getSingleResult());
return (Boolean) query.getSingleResult();
}
Gostei + 0
12/08/2014
Luis Camilo
Gostei + 0
12/08/2014
Ronaldo Lanhellas
Ok, aguarde seu feedback
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)