Bom dia galera, estou com o seguinte problema, tenho uma classe que é composta por um código e outra classe, que por sua vez também é de chave composta, um dos problemas é que os nomes dos campos são diferentes entre as classes, até consegui fazer a consulta no banco, mas não tenho acesso aos dados da segunda classe, segue abaixo como está no momento.
public class UnidadeGestoraId implements Serializable{
private Integer anoBase;
private Integer codigo;
/* Getters and Setters */
{...}
}
public class UnidadeGestora implements Serializable{
private UnidadeGestoraId id;
private String nome;
/* Getters and Setters */
{...}
}
public class PlanoDespesaId implements Serializable{
private UnidadeGestora unidadeGestora;
private String codigo;
/* Getters and Setters */
{...}
}
public class PlanoDespesa implements Serializable{
private PlanoDespesaId id;
private String nome;
/* Getters and Setters */
{...}
}
<hibernate-mapping>
<class name="UnidadeGestora" table="unidade_gestora">
<composite-id name="id" class="UnidadeGestoraId">
<key-property name="anoBase" column="ANO_BASE" type="integer"/>
<key-property name="codigo" column="CODIGO" type="integer"/>
</composite-id>
<property name="nome" type="string">
<column name="nome"/>
</property>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="PlanoDespesa" table="plano_despesa">
<composite-id name="id" class="PlanoDespesaId">
<key-many-to-one name="unidadeGestora" class="UnidadeGestora"
foreign-key="fk_plano_despesa_un_gestora" >
<column name="ANO_BASE"/>
<column name="UNIDADE_GESTORA"/>
</key-many-to-one>
<key-property name="codigo" column="CODIGO" type="string"/>
</composite-id>
<property name="nome" type="string">
<column name="NOME" length="50" not-null="true"/>
</property>
</class>
</hibernate-mapping>
Da forma que está agora, não consigo nem mesmo fazer filtros como o seguintefrom PlanoDespesa where id.unidadeGestora.anoBase = 2012