我在使用方法 update() org.springframework.orm.hibernate3.HibernateSystemException 更新对象
时收到此错误:当我使用方法 merge() 时
,具有相同标识符值的不同对象已与会话关联我收到此错误
org .hibernate.NonUniqueObjectException:具有相同标识符值的不同对象已与会话关联。请帮忙。
问问题
531 次
2 回答
0
通常,当您尝试更新当前会话已在使用的对象时会导致此问题。例如,如果您尝试更新当前登录用户的用户对象。要使其工作,您必须创建一个新的休眠会话并使用它来更新您的对象。
User updatedUser = getAnUpdatedUserObject();
Session session2 = getSessionFactory().openSession();
Transaction tx2 = session2.beginTransaction();
session2.saveOrUpdate(updatedUser);
tx2.commit();
session2.close();
于 2014-09-19T05:02:13.927 回答
0
您需要正确实现 'hashCode' 和 'equals' 方法,请参见此处。注意不要将 id 用作唯一的唯一属性 -> 分隔对象 id 和业务键。
于 2013-05-08T16:14:51.973 回答