Erro query hibernate

2 respostas
rodrigo.fai

Olá!

Estou usando o hibernate 3 e preciso fazer uma consulta para saber se o usuário esta ou nao cadastrado antes de efetuar o login.

Criei um metodo p/ consulta usando o interface Query:

public Usuario existeUnico(Usuario u)
	{
		String hql = "select u from Usuario as u where u.username = :nome and u.password = :senha";
		Query query = getSession().createQuery(hql);
		query.setParameter("nome", u.getUsername());
		query.setParameter("senha", u.getPassword());
		
		return (Usuario) query.uniqueResult();
	}

Quando tento executar a consulta, é exibida a seguinte msn de erro:

Achei q poderia c a forma com que estou tentando buscar tais dados!!!

Foi quando fiz um teste…

Criei outro método com a msm finalidade, mas usando a interface Criteria:

public List existeUnico(Usuario usuario)
	{
		Criteria criteria = getSession().createCriteria(Usuario.class);
		criteria.add(Restrictions.eq("username", usuario.getUsername()));
		criteria.add(Restrictions.eq("password", usuario.getPassword()));
		List list = criteria.list();
		
		return list;
	}

Aconteceu a msm coisa!!! O msm erro foi exibido!!!

O bean Usuario está desta forma:

package net.sytes.tsda.zeuswebserver.bean;

import javax.persistence.*;

@Entity
@Table(name = "usuarios", schema="anotacoes")
public class Usuario 
{
	@Id
	@Column(name = "nome")
	private String username;
	@Column(name = "senha")
	private String password;

	public final String getUsername() 
	{
		return username;
	}
	
	public final void setUsername(String username) 
	{
		this.username = username;
	}
	
	public final String getPassword() 
	{
		return password;
	}
	
	public final void setPassword(String password) 
	{
		this.password = password;
	}
}

E a tabela de usuarios está com a seguinte estrutura:

TABLE USUARIOS (
    INDICE INTEGER NOT NULL,
    NOME VARCHAR(20),
    SENHA VARCHAR(20))

Estou começando com Hibernate agora e não tenho idéia o que pode estar causando tais erros que encontro com esta ferramenta. Também por ser uma plicação web, não sei c esta faltando alguma config. do Hibernate p/ que rode corretamente nesta plataforma…

Se alguém pode me ajudar…

2 Respostas

C

O problema acho que eh no campo/atributo que vc quer retornar: U
pelo q vi na sua query U eh o alias de usuario.
tente isso:

SELECT u.codigo FROM Usuario u WHERE u.username = :login and u.password = :senha

vc pode substitituir u.codigo por qualquer outro campo/atibuto…

rodrigo.fai

cintialcarvalho:
O problema acho que eh no campo/atributo que vc quer retornar: U
pelo q vi na sua query U eh o alias de usuario.
tente isso:

SELECT u.codigo FROM Usuario u WHERE u.username = :login and u.password = :senha

vc pode substitituir u.codigo por qualquer outro campo/atibuto…

vlw!

mas ja resolvi meu problema! retirei a prop. “schema” da anotacao @Table e funcionou…

Criado 26 de março de 2008
Ultima resposta 12 de abr. de 2008
Respostas 2
Participantes 2