Função do postgres no JPA
Pessoal, boa noite.
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.
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
Curtidas 0
Respostas
Ronaldo Lanhellas
11/08/2014
Poste o trecho do seu código que você está utilizando para tentar chamar a função.
GOSTEI 0
Luis Camilo
11/08/2014
Bom dia.
Segue abaixo o código:
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.
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
Ronaldo Lanhellas
11/08/2014
BOm, vamos tentar por namedQuery (acho mais organizado) .
1 - Primeiro crie sua namedQuery :
2 - Agora vamos usá-la:
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
Luis Camilo
11/08/2014
Está bem vou tentar e já te falo... Obrigado pela sugestão
GOSTEI 0
Ronaldo Lanhellas
11/08/2014
Está bem vou tentar e já te falo... Obrigado pela sugestão
Ok, aguarde seu feedback
GOSTEI 0