Hibernate:无法将数据库状态与会话同步

尝试将新条目插入到“多对多”关联表时,出现此错误:Could not synchronize database state with session我可以理解,这是与getSession()和session.close()处理的事情

但我无法弄清楚。对于每笔交易,我都会创建一个新会话。但是我在用户注销时关闭了所有会话。即:创建一个hibernate会话并将其与HttpSession绑定。然后我在用户注销中销毁它。

处理此问题后,有时会a different object with the same identifier value was already

associated with the session:出现错误。

由于未正确打开和关闭会话,所有这些错误即将到来。

您更喜欢使用哪种方法打开和关闭会话。我的项目是创建一个Web应用程序。该Web应用程序中的每一步动作都与DB有关。

有什么建议么!!!

回答:

具有相同标识符值的另一个对象已与该会话相关联

Hibernate跟踪会话中处理的映射对象,因此它可以检测到对这些对象所做的任何更改,并在提交事务时将它们写回到数据库中。如果允许您将具有相同数据库标识符对象的不同对象添加到会话中,那么应该写入哪个对象的状态将是不确定的。

hibernate参考手册中的对象操作详细说明了这一点(以及解决方法)。特别感兴趣的是标题为“修改分离的对象”的部分,但是也需要阅读介绍以了解所使用的术语。

以上是 Hibernate:无法将数据库状态与会话同步 的全部内容, 来源链接: utcz.com/qa/404180.html

回到顶部