JPA - ERRO ao passar os padrâmetros

1 resposta
jpa
Cleiton_Conceicao

gente só dá erro quando eu passo os filtros.

package com.cleiton.consultas;
import java.util.List;

import javax.persistence.EntityManager;

import javax.persistence.TypedQuery;

import com.cleiton.cadastro.Usuario;
import com.cleiton.topicos2.Consultar;

public class ValidarUsuario {

public static void main(String[] args)

{

Consultar consulta = new Consultar ();

EntityManager obconsulta = consulta.getEntityManager();
TypedQuery<Long> query = obconsulta.createQuery(  "SELECT COUNT(U) FROM CADASTRO_USUARIO U WHERE U.USR_EMAIL=:email and U.USR_SENHA=:senha", Long.class);
	 long total = query.getSingleResult();
	 
	 query.setParameter("email", "[email removido]");
	 query.setParameter("senha", "1");


	 	if(total>=0){
			System.out.println("entrou"+total);
	 		}else{
		System.out.println("não entrous"+total);
	 		}

}
}

Exception in thread main java.lang.IllegalArgumentException: org.hibernate.QueryException: Named parameter [senha] not set

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:133)

at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)

at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1471)

at com.cleiton.consultas.ValidarUsuario.main(ValidarUsuario.java:21)

Caused by: org.hibernate.QueryException: Named parameter [senha] not set

at org.hibernate.query.internal.QueryParameterBindingsImpl.verifyParametersBound(QueryParameterBindingsImpl.java:251)

at org.hibernate.query.internal.AbstractProducedQuery.beforeQuery(AbstractProducedQuery.java:1313)

at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1412)

at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1463)

 1 more

1 Resposta

javaflex

Nao precisa duplicar os posts, chame a linha do getSingleResult após setar os parâmetros como já foi mostrado no post original:

TypedQuery<Long> query = obconsulta.createQuery("SELECT COUNT(U) FROM CADASTRO_USUARIO U WHERE U.USR_EMAIL=:email and U.USR_SENHA=:senha", Long.class);

query.setParameter("email", "[email removido]");
query.setParameter("senha", "1");

long total = query.getSingleResult();

...
Criado 4 de novembro de 2017
Ultima resposta 4 de nov. de 2017
Respostas 1
Participantes 2