o erro continua…
public void verificaUser(){
boolean flag = false;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("banco");
EntityManager manager = emf.createEntityManager();
try {
manager.getTransaction().begin();
UsuarioQuery uDao = new UsuarioQuery(manager);
flag = uDao.logar(usuario, senha);
} catch (Exception e) {
manager.getTransaction().rollback();
e.printStackTrace();
}
finally{
emf.close();
}
public boolean logar(String login,String senha){
boolean flag = false;
Query query = manager.createQuery("SELECT COUNT(U) FROM UsuarioQuery AS U WHERE "
+ "U.usuario =:usuario AND U.senha =:senha",UsuarioQuery.class);
query.setParameter("usuario", login);
query.setParameter("senha", senha);
int result = query.getMaxResults();
if(result== 1){
flag = true;
}else{
flag = false;
}
return flag;
}
[quote=b10machado]o erro continua…
public void verificaUser(){
boolean flag = false;
EntityManagerFactory emf = Persistence.createEntityManagerFactory("banco");
EntityManager manager = emf.createEntityManager();
try {
manager.getTransaction().begin();
UsuarioQuery uDao = new UsuarioQuery(manager);
flag = uDao.logar(usuario, senha);
} catch (Exception e) {
manager.getTransaction().rollback();
e.printStackTrace();
}
finally{
emf.close();
}
public boolean logar(String login,String senha){
boolean flag = false;
Query query = manager.createQuery("SELECT COUNT(U) FROM UsuarioQuery AS U WHERE "
+ "U.usuario =:usuario AND U.senha =:senha",UsuarioQuery.class);
query.setParameter("usuario", login);
query.setParameter("senha", senha);
int result = query.getMaxResults();
if(result== 1){
flag = true;
}else{
flag = false;
}
return flag;
}
[/quote]
Não velho. Explicando de forma simples, getMaxResults retorna o numero de registros, quando você informa à query a quantidade de registro que quer trazer (setMaxResults) , tipo LIMIT do PostgreSQL. O que você quer usar é getSingleResult, já que COUNT, nesta query, trará apenas um registro.
entao usando qlqr um desses da erro do tipo
Solução…
Query query = manager.createQuery("SELECT COUNT(U) FROM UsuarioQuery AS U WHERE "
+ "U.usuario =:usuario AND U.senha =:senha");
query.setParameter("usuario", login);
query.setParameter("senha", senha);
Object result = query.getSingleResult();
int n = result.hashCode();
if(n == 1){
flag = true;
}else{
flag = false;
}
return flag;