Hibernate + composite-id + cascade=all

Pessoal,

Estou tentando implementar um pequeno exemplo de classes persistindo com Hibernate, mas tô encontrando problemas. Tenho a classe “Conta” que possuim um “Set” de “ItemConta”. Vejam os hbm das duas:

[code]<hibernate-mapping>

&lt;class name=&quot;gs.jhis.faturamento.Conta&quot; table=&quot;T07CTA&quot;&gt;
    &lt;id name=&quot;registro&quot; column=&quot;REGCON&quot; type=&quot;long&quot; unsaved-value=&quot;0&quot;&gt;
        &lt;generator class=&quot;increment&quot;/&gt;
    &lt;/id&gt;
    
    &lt;property name=&quot;tipoConta&quot; column=&quot;TIPCTA&quot; type=&quot;char&quot;/&gt;
    &lt;property name=&quot;entrada&quot; column=&quot;DATENT&quot; type=&quot;date&quot;/&gt;
    &lt;property name=&quot;saida&quot; column=&quot;DATSAI&quot; type=&quot;date&quot;/&gt;
    
    &lt;set name=&quot;procedimentosMedicos&quot; cascade=&quot;none&quot; inverse=&quot;true&quot; lazy=&quot;true&quot;&gt;
        &lt;key column=&quot;REGCON&quot;/&gt;
        &lt;one-to-many class=&quot;gs.jhis.faturamento.ItemConta&quot;/&gt;
    &lt;/set&gt;
    
&lt;/class&gt;

</hibernate-mapping>[/code]

[code]<hibernate-mapping>

&lt;class name=&quot;gs.jhis.faturamento.ItemConta&quot; 
       table=&quot;T07ITC&quot;&gt;
    &lt;composite-id name=&quot;itemContaPk&quot; class=&quot;gs.jhis.hibernate.pk.ItemContaPk&quot;&gt;
        &lt;key-many-to-one name=&quot;conta&quot; column=&quot;REGCON&quot; class=&quot;gs.jhis.faturamento.ContaInterna&quot;/&gt;
        &lt;key-property name=&quot;codigo&quot; column=&quot;CODPRO&quot; type=&quot;long&quot;/&gt;
        &lt;key-property name=&quot;tipoLancamento&quot; column=&quot;TIPLAN&quot; type=&quot;byte&quot;/&gt;
    &lt;/composite-id&gt;
    
    &lt;property name=&quot;descricao&quot; column=&quot;DESCRI&quot; type=&quot;string&quot;/&gt;
    &lt;property name=&quot;quantidade&quot; column=&quot;QUANTI&quot; type=&quot;integer&quot;/&gt;
    &lt;property name=&quot;valor&quot; column=&quot;VLRFAT&quot; type=&quot;double&quot;/&gt;
    &lt;property name=&quot;valorPago&quot; column=&quot;VLRPAG&quot; type=&quot;double&quot;/&gt;
    &lt;property name=&quot;data&quot; column=&quot;DTHRLA&quot; type=&quot;date&quot;/&gt;
    
    &lt;many-to-one name=&quot;titular&quot; column=&quot;CRMTIT&quot; class=&quot;gs.jhis.common.Medico&quot;/&gt;
    &lt;many-to-one name=&quot;anestesista&quot; column=&quot;CRMANE&quot; class=&quot;gs.jhis.common.Medico&quot;/&gt;
&lt;/class&gt;

</hibernate-mapping>[/code]

Como podem ver, a classe “ItemConta” possuim um composite-id. Quando aplico o seguinte código:

Conta c = new Conta&#40;&#41;; /* sets atribuindo valores para a Conta e para os ItemConta */ Session s = sf.openSession&#40;&#41;; Transaction t = s.beginTransaction&#40;&#41;; s.save&#40;c&#41; t.commit&#40;&#41;;

O hibernate execute um insert na tabela das contas, mas, ao invés de realizar um insert na tabela dos itens da conta, ele tenta fazer um update. Isso retorna um erro já que aqueles dados ainda não foram persistidos. O que estou entendo é que o hibernate não tá conseguindo distinguir que os objetos contidos no Set de itens da conta ainda não estão gravados. Como eu posso resolver isso?

Obrigado,

Gleison

Na msg anterior, onde se lê:

&lt;set name=&quot;procedimentosMedicos&quot; cascade=&quot;none&quot; inverse=&quot;true&quot; lazy=&quot;true&quot;&gt; o que eu queria postar era:

&lt;set name=&quot;procedimentosMedicos&quot; cascade=&quot;all&quot; inverse=&quot;true&quot; lazy=&quot;true&quot;&gt;

Coloquei “none” apenas para fazer testes. O erro, obviamente, ocorre quando cascade=“all”.