我在这个配置中基本上有一些对象(真正的数据模型有点复杂):
inverse="true")cascade设定"save-update")另外,我应该提一下主键是在保存时由数据库生成的.
对于我的数据,我有时会遇到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(),但是当我这样做时,任何"冲突"对象都会作为空白对象插入到数据库中,所有值都设置为null.显然,这不是我们想要的.
[编辑]我忘记提到的另一件事是(由于我无法控制的架构原因),每次读取或写入都需要在单独的会话中完成.