Filtrar dados interligando 3 Tabelas

Ola pessoal, estou com o seguinte problema:
Preciso realizar um filtro no banco de dados e retornar 3 informaçoes.

SELECT p.nomeDespesa, p.dataPagar, p.valorPagar FROM Pagar p
WHERE Usuarios.idUsuario = Contas.idUsuario
AND Contas.idConta = Pagar.idConta
AND Contas.status = “ABERTO”

sendo que o idUsuario eh passado como parametro.
A minha duvido eh como representar isto no Hibernate.
O que quero dizer eh como fazer a HQL para trazer esses dados.

Bom dia, já que você quer fazer com HQL porque não faz com Objetos?

Mas se quer fazer desta forma, mande como você mapeou o relacionamentos.

Até mais.

[size=18]Classe usuario[/size]

[code]package Model;

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
*

  • Classe responsável por modelar os dados dos usuários do sistema

  • @author

  • @since 15/11/2012 15:55:53

  • @version 1.0
    */
    @Entity
    @Table(name = “usuario”)
    @NamedQueries({
    @NamedQuery(name=“Usuario.find”,query=“SELECT usuario FROM UsuarioVO usuario WHERE usuario.loginUsuario=:login AND usuario.senhaUsuario=:senha”),
    @NamedQuery(name=“UsuarioVO.getAll”, query=“SELECT e FROM UsuarioVO e”)
    })
    public class UsuarioVO implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = “id”)
    private Integer idUsuario;
    @Column(name = “nome”, nullable = true, length = 50)
    private String nomeUsuario;
    @Column(name = “login”, nullable = true, length = 20, unique = true)
    private String loginUsuario;
    @Column(name = “senha”, nullable = true, length = 8)
    private String senhaUsuario;

    /**

    • @return the idUsuario
      */
      public Integer getIdUsuario() {
      return idUsuario;
      }

    /**

    • @param idUsuario the idUsuario to set
      */
      public void setIdUsuario(Integer idUsuario) {
      this.idUsuario = idUsuario;
      }

    /**

    • @return the nomeUsuario
      */
      public String getNomeUsuario() {
      return nomeUsuario;
      }

    /**

    • @param nomeUsuario the nomeUsuario to set
      */
      public void setNomeUsuario(String nomeUsuario) {
      this.nomeUsuario = nomeUsuario;
      }

    /**

    • @return the loginUsuario
      */
      public String getLoginUsuario() {
      return loginUsuario;
      }

    /**

    • @param loginUsuario the loginUsuario to set
      */
      public void setLoginUsuario(String loginUsuario) {
      this.loginUsuario = loginUsuario;
      }

    /**

    • @return the senhaUsuario
      */
      public String getSenhaUsuario() {
      return senhaUsuario;
      }

    /**

    • @param senhaUsuario the senhaUsuario to set
      */
      public void setSenhaUsuario(String senhaUsuario) {
      this.senhaUsuario = senhaUsuario;
      }
      }[/code]

[size=18]Classe Contas[/size]

[code]
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package Model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
*

  • @author Joao Garbiere
    */
    @Entity
    @Table(name = “contas”)
    @NamedQueries({
    @NamedQuery(name=“ContasVO.getAll”, query=“SELECT e FROM ContasVO e”)
    })

public class ContasVO implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idContas")
private Integer idContas;
@Column(name = "status", nullable = false, length = 10)
private String status;
@Column(name = "descricao", nullable = false, length = 50)
private String descricao;

@ManyToOne(cascade = CascadeType.ALL, targetEntity = CategoriaVO.class, fetch = FetchType.EAGER)
@JoinColumn(name = "ce_categoria")
private CategoriaVO categoriaVO;

@ManyToOne(cascade = CascadeType.ALL, targetEntity = UsuarioVO.class, fetch = FetchType.EAGER)
@JoinColumn(name = "ce_usuario")
private UsuarioVO usuarioVO ;

public Integer getIdContas() {
    return idContas;
}

public void setIdContas(Integer idContas) {
    this.idContas = idContas;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public CategoriaVO getCategoriaVO() {
    return categoriaVO;
}

public void setCategoriaVO(CategoriaVO categoriaVO) {
    this.categoriaVO = categoriaVO;
}

public UsuarioVO getUsuarioVO() {
    return usuarioVO;
}

public void setUsuarioVO(UsuarioVO usuarioVO) {
    this.usuarioVO = usuarioVO;
}

}[/code]

[size=18]Classe Pagar[/size]

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 *
 * @author Joao Garbiere
 */
@Entity
@Table(name = "pagar")
public class PagarVO implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "idPagar")
    private Integer idPagar;
    @Column(name = "valorPagar")
    private float valorPagar;
    @Column(name = "descricaoDespesa", nullable = false, length = 50)
    private String descricaoDespesa;
    @Column(name = "dataPagar", nullable = false, length = 10)
    private String dataPagar;
    @ManyToOne(cascade = CascadeType.ALL, targetEntity = MetodoPagamentoVO.class, fetch = FetchType.EAGER)
    @JoinColumn(name = "ce_metodopagamento")
    private MetodoPagamentoVO MetodoPagamentoVO ;
    @ManyToOne(cascade = CascadeType.ALL, targetEntity = UsuarioVO.class, fetch = FetchType.EAGER)
    @JoinColumn(name = "ce_contas")
    private ContasVO contasVO ;

    public Integer getIdPagar() {
        return idPagar;
    }

    public void setIdPagar(Integer idPagar) {
        this.idPagar = idPagar;
    }

    public float getValorPagar() {
        return valorPagar;
    }

    public void setValorPagar(float valorPagar) {
        this.valorPagar = valorPagar;
    }

    public String getDescricaoDespesa() {
        return descricaoDespesa;
    }

    public void setDescricaoDespesa(String descricaoDespesa) {
        this.descricaoDespesa = descricaoDespesa;
    }

    public String getDataPagar() {
        return dataPagar;
    }

    public void setDataPagar(String dataPagar) {
        this.dataPagar = dataPagar;
    }

    public Model.MetodoPagamentoVO getMetodoPagamentoVO() {
        return MetodoPagamentoVO;
    }

    public void setMetodoPagamentoVO(Model.MetodoPagamentoVO MetodoPagamentoVO) {
        this.MetodoPagamentoVO = MetodoPagamentoVO;
    }

    public ContasVO getContasVO() {
        return contasVO;
    }

    public void setContasVO(ContasVO contasVO) {
        this.contasVO = contasVO;
    }
  
}

Ola, segue os dados que pediu, gostaria que me explicasse melhor como seria por objeto.
O prazo de entrega esta apertado, eh um trabalho que estamos realizando na faculdade e caso
verifique que esta bagunçado o codigo, adianto que realmente esta rsrs, estamos correndo contra o tempo,
mas a experiencia estah sendo valida tendo em vista que ainda nao havia aprendido a linguagem java.
Conto com sua ajuda para sair desse empasse abraços