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

6 hibernate session-state

可能重复:
Hibernate:具有相同标识符值的不同对象已与会话关联

在尝试向Many To Many关联表中插入新条目时,我收到此错误: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-app中的每一个动作都与DB有关.

有什么建议!!!

mer*_*ike 12

具有相同标识符值的不同对象已与会话关联

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

使用来自hibernate参考手册的对象详细解释了这一点(以及解决方法).特别感兴趣的是标题为"修改分离对象"的部分,但是也需要阅读介绍以理解所使用的术语.