可能重复:
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有关。
任何建议!!!
答案 0 :(得分:12)
具有相同标识符值的其他对象已与会话
关联
Hibernate跟踪会话中处理的映射对象,以便它可以检测对这些对象所做的任何更改,并在提交事务时将它们写回数据库。如果允许您将具有相同数据库标识符对象的不同对象添加到会话中,那么应该写入哪个对象的状态是不明确的。
来自hibernate参考手册的Working with objects详细解释了这一点(以及解决方法)。特别感兴趣的是标题为“修改分离对象”的部分,但是也需要阅读介绍以理解所使用的术语。