Hibernate: delete + update com a mesma sessão

Pessoal,

Por favor, me tirem essa dúvida:

Tenho a classe Pessoa, contendo um set de EnderecoPessoa (que tbém
contém a classe Endereco, tabela “endereco” no bd) para ser persistida
no postgres usando hibernate. Assim, a classe EnderecoPessoa (tabela
"endereco_pessoa" no bd) é composta por codigo_pessoa (on update
CASCADE, on delete CASCADE) e codigo_endereco (on update CASCADE, on
delete CASCADE).

Estou usando a classe PessoaDAO para gravação no bd, e ocorre erro na
seguinte situação:

  • a partir de um registro existente na tabela “pessoa”, contendo 2
    "endereco_pessoa", preciso excluir um deles e atualizar o outro;

  • assim eu faço um Session.delete() em “endereco” (não em
    "endereco_pessoa"), seguido de um Session.updateOrSaveCopy() na outro
    "endereco" (não em “endereco_pessoa” tbém), e depois ainda faço um
    Session.updateOrSaveCopy() em “pessoa” (atualizando o set de
    EnderecoPessoa), tudo isso usando um único Session e um Transaction.

Assim eu recebo a exception:

net.sf.hibernate.ObjectDeletedException: The object with that id was deleted: EnderecoPessoaPK@5dbc82[cdPessoa=2,cdEndereco=6], of class: EnderecoPessoa

E aí eu pergunto: o que está errado?? e qual tabela devo excluir para executar minha operação??

Desde já agradeço a atenção…

[]'s

Leonardo,

ficaria mais fácil se vc postasse os mapeamentos e o código-fonte…