我基本上具有在該結構中的一些對象相關聯的(真正的數據模型是一個比較複雜的):休眠錯誤:用相同的標識符值不同的物體已經與所述會話
- A具有許多與B.一對多關係(B具有
inverse="true"
) - B具有與C的多對一的關係(I有
cascade
集到"save-update"
) - C是一種類型/類別表的。
另外,我應該提到主鍵是保存時由數據庫生成的。
有了我的數據,我有時會遇到問題,其中A有一組不同的B對象,而這些B對象引用相同的C對象。
當我打電話給session.saveOrUpdate(myAObject)
時,出現一個休眠錯誤:"a different object with the same identifier value was already associated with the session: C"
。我知道hibernate不能在同一個會話中插入/更新/刪除同一個對象兩次,但是有沒有辦法解決這個問題?這似乎並不是罕見的情況。
在我研究這個問題的過程中,我看到有人建議使用session.merge()
,但是當我這樣做時,任何「衝突」的對象都會作爲空白對象插入到數據庫中,所有值都設置爲空。顯然,這不是我們想要的。
[編輯]我忘記提及的另一件事是(由於體系結構的原因超出我的控制),每個讀或寫需要在一個單獨的會話中完成。
看看這個[ **答案**](http://stackoverflow.com/questions/1074081/hibernate-error-org-hibernate-nonuniqueobjectexception-a-different-object-with)可以幫助你.. – joaonlima 2013-04-26 23:43:01