Dúvida em HQL, pegando dados de objeto mapeado

Caros, possuo o seguinte método:

[code]@SuppressWarnings(“unchecked”)
public List ListarPorChave(String chave) {

	System.out.println(chave);
	Usuario usuario = new UsuarioDao().buscarPorId(chave);
    Query query = s.createQuery("from Demanda d where d.Usuario = :user");
    query.setParameter("user", usuario);
    List<Demanda> lista = query.list();  
    if (lista.size() == 0){
		return null;
	}
	return lista;
	
}[/code]

Quando rodo este código dá o seguinte erro:

SEVERE: Servlet.service() for servlet default threw exception org.hibernate.QueryException: could not resolve property: Usuario of: bean.Demanda [from bean.Demanda d where d.Usuario = :user]

É o seguinte, eu possuo a classe Demanda e classe Usuário, as duas mapeadas em Beans diferentes, no entanto dentro da classe Demanda, a classe Usuário é chamada da seguinte forma:

@OneToOne(fetch = FetchType.EAGER) @JoinColumn(name="usuario_us_chave") private Usuario usuario;
E seus Gets e Sets normais funcionando perfeitamente.

Tentei também o seguinte código:

[code] @SuppressWarnings(“unchecked”)
public List ListarPorChave(String chave) {

	System.out.println(chave);
	//Usuario usuario = new UsuarioDao().buscarPorId(chave);
    Query query = s.createQuery("from Demanda d where d.usuario_us_chave = :user");
    query.setParameter("user", chave);
    List<Demanda> lista = query.list();  
    if (lista.size() == 0){
		return null;
	}
	return lista;[/code]

Aí dá o seguinte erro:

SEVERE: Servlet.service() for servlet default threw exception org.hibernate.QueryException: could not resolve property: usuario_us_chave of: bean.Demanda [from bean.Demanda d where d.usuario_us_chave = :user]

Enfim… Não consigo fazer isso funcionar… Acho que é questão de mapeamento entre as classes, mas não sei como resolver…
Alguém pode me ajudar?? Agradeço imensamente!

amigo isso aqui d.Usuario voce estar setando para uma variavel de instacia do objeto demanda.
so lembrando ele precissa existir.

acho que seu codigo deveria ficar assim


    @SuppressWarnings("unchecked")  
        public List<Demanda> ListarPorChave(String chave) {  
              
            System.out.println(chave);  
            Usuario usuario = new UsuarioDao().buscarPorId(chave);  
            Query query = s.createQuery("from Demanda d where d.usuario.idUsuario = :idUsuario");
            query.setParameter("user", usuario.getIdUsuario());  
            List<Demanda> lista = query.list();    
            if (lista.size() == 0){  
               return null;  
           }  
           return lista;  
             
       }  

Muito obrigado amigo! Funcionou perfeitamente! Eu estava esquecendo do objeto usuário dentro de Demanda… A única diferença do seu código é que a chave primária da classe usuário é “us_chave” e a FK da classe Demanda é “usuario_us_chave”

O código funcionando é o seguinte:

[code] @SuppressWarnings(“unchecked”)
public List ListarPorChave(String chave) {

	System.out.println(chave);
	Usuario usuario = new UsuarioDao().buscarPorId(chave);
    Query query = s.createQuery("from Demanda d where d.usuario.us_chave = :user");
    query.setParameter("user", usuario.getUs_chave());
    List<Demanda> lista = query.list();  
    if (lista.size() == 0){
		return null;
	}
	return lista;
	
}[/code]

Muito obrigado novamente! Mais um caso resolvido!

nada vei, ja comete muito deces erros desapecebido.

vlw!!!