0

我在使用方法 update() org.springframework.orm.hibernate3.HibernateSystemException 更新对象 时收到此错误:当我使用方法 merge() 时

,具有相同标识符值的不同对象已与会话关联我收到此错误 org .hibernate.NonUniqueObjectException:具有相同标识符值的不同对象已与会话关联。请帮忙。





4

2 回答 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 回答