Problemas com inserção relacionamento Bi-direcional

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:

[code]

 <joined-subclass name="br.com.xxx.ContratoInterconexao"  extends="br.com.xxx.Contrato" table="TB_CONTR_INTER">
        <key column="ID_CONTR"/>
	
        ...
        ...        

</joined-subclass>
[/code]


e dentro ele defino a coleção de ContratoRotas

[code]

  <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>	
[/code]



No meu hbm de ContratoRota ele usa a classe ContratoRotaPK por causa da chave composta:

[code]

<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>

[/code]


E finalmente na Rota eu defino também uma coleção de ContratoRotas:

[code]
      
 <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>
[/code]
    	


meu problema é o seguinte:

Minha tela de cadastro eu insiro os dados especificos do Contrato e seleciono as rotas ja existentes que vão pertencer a ele.
quando eu tento salvar no banco o hibernate me da a seguinte mensagem:

(util.JDBCExceptionReporter          71  ) SQL Error: 1400, SQLState: 23000
(util.JDBCExceptionReporter          72  ) ORA-01400: cannot insert NULL into ("TB_CONTRATO_ROTA"."ID_CONTR")


eu debuguei e vi que o objeto ContratoRotaPK esta com esse id do contrato nulo realmente, só que na tabela de contratos ele faz o insert normalmente e quando vai inserir na tabela que relaciona ele me da o erro.


Alguém consegue me dar uma luz do por que isso esta acontecendo?


Obrigado

Ricardo Cabral