Fórum Função do postgres no JPA #488601

11/08/2014

0

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.
Luis Camilo

Luis Camilo

Responder

Posts

12/08/2014

Ronaldo Lanhellas

Poste o trecho do seu código que você está utilizando para tentar chamar a função.
Responder

Gostei + 0

12/08/2014

Luis Camilo

Bom dia.
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.
Responder

Gostei + 0

12/08/2014

Ronaldo Lanhellas

BOm, vamos tentar por namedQuery (acho mais organizado) .

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();
    }
Responder

Gostei + 0

12/08/2014

Luis Camilo

Está bem vou tentar e já te falo... Obrigado pela sugestão
Responder

Gostei + 0

12/08/2014

Ronaldo Lanhellas

Está bem vou tentar e já te falo... Obrigado pela sugestão


Ok, aguarde seu feedback
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar