Retornar campos com criteria

amigos,

to começando a utilizar a api criteira… no meu codigo o list resultante tem todos os campos da classe que eu criei o criteria… mas eu precisava trazer os campos das classes que eu fiz os 2 joins… como eu faço isso??

segue codigo

public ConsGlobal(Long mes){
em = (EntityManager) Conectar.getsession();
sess = (Session) em.getDelegate();

 crit = sess.createCriteria(ConsOrcamento.class)
 .setFetchMode("TbrjCadCtCusto", FetchMode.JOIN)
 .setFetchMode("TbrjCadFornecedor", FetchMode.JOIN)
 .add(Restrictions.like("ctCusto", "8%"))
 .add(Restrictions.eq("mes", mes));
 
                  
}

se suas classes tem os relacionamentos corretos, deveriam vir carregados, isso se o fetch não estiver lazy

o problema é de relacionamento mesmo…mas nao to conseguindo resolver… alguem pode me ajudar?? O Campo CadConta é a chave entre as tabelas… 1 registro na TbrjCadContas pra muitos na ConsOrcamento… segue as 2 classes

public class ConsOrcamento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Column(name = "DT")
    @Temporal(TemporalType.DATE)
    
    private Date dt;
    @Column(name = "MES")
    private Long mes;
    @Id
    @Column(name = "COD_CONTA")
    @ManyToOne (targetEntity = tabelas.TbrjCadContas.class )
    @JoinColumn(name = "CodConta")
    private BigInteger codConta;
    @Size(max = 45)
    
    @Column(name = "FORNECEDOR")
    
    private String fornecedor;
    
    @Column(name = "ORCADO")
    private Float orcado;
    @Column(name = "GASTO")
    private Double gasto;
    
        @Size(max = 45)
    @Column(name = "CT_CUSTO")
    
    private String ctCusto;
    @Column(name = "EMPRESA")
    private Integer empresa;
    
    public ConsOrcamento() {
    }

    public Date getDt() {
        return dt;
    }

    public void setDt(Date dt) {
        this.dt = dt;
    }

    public Long getMes() {
        return mes;
    }

    public void setMes(Long mes) {
        this.mes = mes;
    }

    public BigInteger getCodConta() {
        return codConta;
    }

    public void setCodConta(BigInteger codConta) {
        this.codConta = codConta;
    }

    public String getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(String fornecedor) {
        this.fornecedor = fornecedor;
    }

    public Float getOrcado() {
        return orcado;
    }

    public void setOrcado(Float orcado) {
        this.orcado = orcado;
    }

    public Double getGasto() {
        return gasto;
    }

    public void setGasto(Double gasto) {
        this.gasto = gasto;
    }

    public String getCtCusto() {
        return ctCusto;
    }

    public void setCtCusto(String ctCusto) {
        this.ctCusto = ctCusto;
    }

    public Integer getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Integer empresa) {
        this.empresa = empresa;
    }

   
    
}

public class TbrjCadContas implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idTBRJ_CAD_CONTAS")
    private Integer idTBRJCADCONTAS;
    @Column(name = "COD_CONTA")
    private BigInteger codConta;
    @Column(name = "CONTA")
    private String conta;
    @Column(name = "NATUREZA")
    private String natureza;

    public TbrjCadContas() {
    }

    public TbrjCadContas(Integer idTBRJCADCONTAS) {
        this.idTBRJCADCONTAS = idTBRJCADCONTAS;
    }

    public Integer getIdTBRJCADCONTAS() {
        return idTBRJCADCONTAS;
    }

    public void setIdTBRJCADCONTAS(Integer idTBRJCADCONTAS) {
        this.idTBRJCADCONTAS = idTBRJCADCONTAS;
    }

    public BigInteger getCodConta() {
        return codConta;
    }

    public void setCodConta(BigInteger codConta) {
        this.codConta = codConta;
    }

    public String getConta() {
        return conta;
    }

    public void setConta(String conta) {
        this.conta = conta;
    }

    public String getNatureza() {
        return natureza;
    }

    public void setNatureza(String natureza) {
        this.natureza = natureza;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idTBRJCADCONTAS != null ? idTBRJCADCONTAS.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TbrjCadContas)) {
            return false;
        }
        TbrjCadContas other = (TbrjCadContas) object;
        if ((this.idTBRJCADCONTAS == null && other.idTBRJCADCONTAS != null) || (this.idTBRJCADCONTAS != null && !this.idTBRJCADCONTAS.equals(other.idTBRJCADCONTAS))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "tabelas.TbrjCadContas[idTBRJCADCONTAS=" + idTBRJCADCONTAS + "]";
    }

}

eu tive um problema muito semelhante ao seu um tempo atras… e consegui resolver da seguinte maneira.

	@ManyToOne (fetch = FetchType.EAGER)
	@JoinColumn (name = "CodConta")
	@Fetch (FetchMode.JOIN)
	private BigInteger codConta;

coloque este código na sua classe ConsOrcamento para ver se resolve…

quando eu tive este problema eu fiz desta maneira e resolveu.