java – 如何解决org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何解决org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1070字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何解决org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:](/upload/InfoBanner/zyjiaocheng/788/5578e3cc593141a999ed04148c659f02.jpg)
我正在使用hibernate保存List,但它抛出以下异常:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
我正在使用的代码如下,但我不知道它为什么抛出异常:
public void save(List<UserItem> list)
{
//getHibernateTemplate().saveOrUpdateAll(list);
//getHibernateTemplate().deleteAll(list);
sessFactory = getHibernateTemplate().getSessionFactory();
Session session = sessFactory.getCurrentSession();
for (UserItem bean : list) {
session.saveOrUpdate(bean);
}
}
保存列表的正确方法是什么?
解决方法:
问题是会话中已存在具有该id的对象,使用merge将解决您的所有问题,但您应该真正研究这些差异.只需复制它就可以了.
public void save(List<UserItem> list)
{
//getHibernateTemplate().saveOrUpdateAll(list);
//getHibernateTemplate().deleteAll(list);
sessFactory = getHibernateTemplate().getSessionFactory();
Session session = sessFactory.getCurrentSession();
for (UserItem bean : list) {
session.merge(bean);
}
}
这里有关于hibernate持久性相关方法的更多信息的良好来源
What are the differences between the different saving methods in Hibernate?
内容总结
以上是互联网集市为您收集整理的java – 如何解决org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:全部内容,希望文章能够帮你解决java – 如何解决org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。