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

时间:2010-09-29 09:49:37

标签: hibernate session-state

  

可能重复:
  Hibernate: different object with the same identifier value was already associated with the session

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

但我无法准确地弄明白。对于每个事务,我正在创建一个新会话。 但我在用户注销时关闭所有会话。即:创建一个休眠会话&用HttpSession绑定它。然后我在用户注销中销毁它。

在处理此问题后的某些时候,我收到a different object with the same identifier value was already associated with the session:错误。

所有这些错误都是因为没有正确打开而引起的。闭幕会议。

您更喜欢打开和关闭会话的方法。我的项目是创建一个网络应用程序。 该web-app中的每一个动作都与DB有关。

任何建议!!!

1 个答案:

答案 0 :(得分:12)

  

具有相同标识符值的其他对象已与会话

关联

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

来自hibernate参考手册的

Working with objects详细解释了这一点(以及解决方法)。特别感兴趣的是标题为“修改分离对象”的部分,但是也需要阅读介绍以理解所使用的术语。