Dúvida no composite do Hibernate

Olá pessoal,
Tenho um mapeamento muitos para um e preciso retornar apenas alguns campos. Com o mapeamento que estou fazendo ele executa select em todos os campos, segue as classes, mapeamentos e select gerado…

Ps.: no xml troquei "<" e ">" por "a" pq o forum não aceita e dá pau.

//POJO

[code]public class ExiCargo implements java.io.Serializable {

/**
 * 
 */
private static final long serialVersionUID = 3835538178445863581L;

// Fields    

private Integer pkExiCargo;

private Date timestamp;

private Integer fkElemento;

private Integer fkCargo;

private Cargo cargo;

private Elemento elemento;

// Constructors

public Cargo getCargo() {
	return cargo;
}

public void setCargo(Cargo cargo) {
	this.cargo = cargo;
}

public Elemento getElemento() {
	return elemento;
}

public void setElemento(Elemento elemento) {
	this.elemento = elemento;
}

/** default constructor */
public ExiCargo() {
}

/** full constructor */
public ExiCargo(Integer fkElemento, Integer fkCargo) {
	this.fkElemento = fkElemento;
	this.fkCargo = fkCargo;
}

// Property accessors
public Integer getPkExiCargo() {
	return this.pkExiCargo;
}

public void setPkExiCargo(Integer pkExiCargo) {
	this.pkExiCargo = pkExiCargo;
}

public Date getTimestamp() {
	return this.timestamp;
}

public void setTimestamp(Date timestamp) {
	this.timestamp = timestamp;
}

public Integer getFkElemento() {
	return this.fkElemento;
}

public void setFkElemento(Integer fkElemento) {
	this.fkElemento = fkElemento;
}

public Integer getFkCargo() {
	return this.fkCargo;
}

public void setFkCargo(Integer fkCargo) {
	this.fkCargo = fkCargo;
}

}
[/code]

//MAPEAMENTO

a?xml version=&quot;1.0a
a!DOCTYPE hibernate-mapping PUBLIC &quot;-//Hibernate/Hibernate Mapping DTD 3.0//EN&quot;
&quot;http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&quot;a
a!-- Generated 07/08/2006 08:48:12 by Hibernate Tools 3.1.0.beta5 --a
ahibernate-mappinga
    aclass name=&quot;br.com.shc.teste.relacionado.ExiCargo&quot; table=&quot;exicargo&quot;a
                aid name=&quot;pkExiCargo&quot; type=&quot;java.lang.Integer&quot;a
            acolumn name=&quot;PkExiCargo&quot; /a
            agenerator class=&quot;native&quot;a/generatora
        a/ida
        atimestamp name=&quot;timestamp&quot; column=&quot;Timestamp&quot; /a
        
        amany-to-one name=&quot;cargo&quot; class=&quot;br.com.shc.database.cargo.Cargo&quot; fetch=&quot;join&quot;a
        	acolumn name=&quot;FkCargo&quot; not-null=&quot;true&quot;a
        		
        	a/columna
		a/many-to-onea
        
		amany-to-one name=&quot;elemento&quot; class=&quot;br.com.shc.database.elemento.Elemento&quot; fetch=&quot;join&quot;a
        	acolumn name=&quot;FkElemento&quot; not-null=&quot;true&quot;a
        		        	a/columna
        a/many-to-onea 
    a/classa
a/hibernate-mappinga

//SELECT GERADO

Hibernate: 
    select
        exicargo0_.PkExiCargo as PkExiCargo1_2_,
        exicargo0_.Timestamp as Timestamp1_2_,
        exicargo0_.FkCargo as FkCargo1_2_,
        exicargo0_.FkElemento as FkElemento1_2_,
        cargo1_.PkCargo as PkCargo0_0_,
        cargo1_.Timestamp as Timestamp0_0_,
        cargo1_.Descricao as Descricao0_0_,
        elemento2_.PkElemento as PkElemento2_1_,
        elemento2_.Timestamp as Timestamp2_1_,
        elemento2_.FkSubord as FkSubord2_1_,
        elemento2_.Nome as Nome2_1_,
        elemento2_.Codigo as Codigo2_1_,
        elemento2_.Sigla as Sigla2_1_,
        elemento2_.CNPJ as CNPJ2_1_,
        elemento2_.IE as IE2_1_ 
    from
        exicargo exicargo0_ 
    inner join
        cargo cargo1_ 
            on exicargo0_.FkCargo=cargo1_.PkCargo 
    inner join
        elemento elemento2_ 
            on exicargo0_.FkElemento=elemento2_.PkElemento 
    where
        exicargo0_.PkExiCargo=?

Tá muito ruim de ler… poste os arquivos como attach…

seguem os aquivos em anexo…
segue abaixo o select que ele gera quando faço um select na ExiCargo…

Hibernate:
select
exicargo0_.PkExiCargo as PkExiCargo1_2_,
exicargo0_.Timestamp as Timestamp1_2_,
exicargo0_.FkCargo as FkCargo1_2_,
exicargo0_.FkElemento as FkElemento1_2_,
cargo1_.PkCargo as PkCargo0_0_,
cargo1_.Timestamp as Timestamp0_0_,
cargo1_.Descricao as Descricao0_0_,
elemento2_.PkElemento as PkElemento2_1_,
elemento2_.Timestamp as Timestamp2_1_,
elemento2_.FkSubord as FkSubord2_1_,
elemento2_.Nome as Nome2_1_,
elemento2_.Codigo as Codigo2_1_,
elemento2_.Sigla as Sigla2_1_,
elemento2_.CNPJ as CNPJ2_1_,
elemento2_.IE as IE2_1_
from
exicargo exicargo0_
inner join
cargo cargo1_
on exicargo0_.FkCargo=cargo1_.PkCargo
inner join
elemento elemento2_
on exicargo0_.FkElemento=elemento2_.PkElemento
where
exicargo0_.PkExiCargo=?

===============================================

Muito Obrigado desde já!

O select em todos os campos ocorrerá a não ser que faça a query manualmente utilizando org.hibernate.Query ou utilizando Projections em uma Criteria.

Mas antes de achar que o select torna seu software lento, faça o teste.

Olá, vc poderia me passar um exemplo de mapeamento no hbm.xml e a query em hql?
Muito Obrigado!