Pessoal meu problema é o seguinte:
Eu tenho um relacionamento NxN e foi implementado utilizando o composite-id.
as classes são:
Contrato, ContratoInterconexao (extend Contrato) ContratoRota, ContratoRotaPK e Rota.
eu tenho o Hbm de Contrato que define o ContratoInterconexao como filho na seguinte linha:
<joined-subclass name="br.com.xxx.ContratoInterconexao" extends="br.com.xxx.Contrato" table="TB_CONTR_INTER">
<key column="ID_CONTR"/>
...
...
</joined-subclass>
<set name="contratoRotas" table="TB_CONTRATO_ROTA" cascade="all" inverse="false" lazy="false" >
<key column="ID_CONTR"/>
<one-to-many class="br.com.xxx.ContratoRota" />
</set>
<composite-id name="ContratoRotaPK" class="br.com.xxx.ContratoRotaPK">
<key-property name="idContrato" type="java.lang.Long" column="ID_CONTR"/>
<key-property name="idRota" type="java.lang.Long" column="ID_ROTA"/>
</composite-id>
<set name="contratos" table="TB_CONTR" cascade="none" lazy="true" inverse="true">
<key column="ID_ROTA" />
<one-to-many class="br.com.xxx.ContratoRota"/>
</set>