Alterar tabela com chave composta com Hibernate 3

0 respostas
spycall

Olá, estou apanhando do Hibernate pra fazer o seguinte:

Tenha as tabelas: Documento, Indice e IndiceDocumento, essa última é uma tabela de relacionamento com as outras duas, com um campo valor

IndiceDocumento.hbm
<hibernate-mapping package="beans.conteudo.documento">

    <class name="IndiceDocumento" table="INDICEDOCUMENTO">
        <composite-id name="id" class="IndiceDocumentoKey">
            <key-many-to-one name="documento" column="ID_DOCUMENTO" class="Documento" lazy="false"/>
            <key-many-to-one name="indice" column="ID_INDICE" class="beans.conteudo.Indice" lazy="false"/>
        </composite-id>
 
        <property name="valor" column="VALOR" type="java.lang.String" />
    </class>
    
</hibernate-mapping>

Quando faço um updade na tabela Documento, acontece um erro dizendo não pode fazer o update.
Verificando o SQL montado pelo hibernate ele tenta fazer o seguinte:

1º   -   update INDICEDOCUMENTO  set VALOR = ? where ID_DOCUMENTO = ? and ID_INDICE = ?

até aqui OK.

2º  -   update INDICEDOCUMENTO set ID_DOCUMENTO = null WHERE ID_DOCUMENTO = ?

por que ele tenta fazer este segundo update ? e por que ele tenta fazer um update para null, se todos os campos estão preenchidos ?

Criado 2 de junho de 2006
Respostas 0
Participantes 1