最佳答案
在这个配置中,我实际上有一些对象(实际的数据模型有点复杂) :
inverse="true"
)cascade
设置为 "save-update"
)另外,我可能应该提到,主键是由保存时的数据库生成的。
对于我的数据,我有时会遇到这样的问题: A 有一组不同的 B 对象,而这些 B 对象引用同一个 C 对象。
When I call session.saveOrUpdate(myAObject)
, I get a hibernate error saying: "a different object with the same identifier value was already associated with the session: C"
. I know that hibernate can't insert/update/delete the same object twice in the same session, but is there some way around this? This doesn't seem like it would be that uncommon of a situation.
在我研究这个问题的过程中,我看到有人建议使用 session.merge()
,但是当我这样做时,任何“冲突的”对象都作为空对象插入到数据库中,所有值都设置为 null。显然这不是我们想要的。
[Edit] Another thing I forgot to mention is that (for architectural reasons beyond my control), each read or write needs to be done in a separate session.