gpt4 book ai didi

java - 如何解决org.hibernate.NonUniqueObjectException : a different object with the same identifier value was already associated with the session:

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:29 32 4
gpt4 key购买 nike

我正在使用 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);
}
}

保存 List 的正确方法是什么?

最佳答案

问题是 session 中已经存在具有该 ID 的对象,使用合并将解决所有问题,但您应该认真研究差异。只需复制此内容即可。

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 : a different object with the same identifier value was already associated with the session:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931257/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com