我正在List使用 hibernate 保存 a ,但它会引发以下异常:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码如下,但我不知道为什么它会引发异常:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
正确的保存方法是什么List?
此错误的主要原因是,在您的列表中存在具有相同主键的对象,这意味着两个对象具有相同的主键,但它们不是相同的对象实例。
我建议您迭代列表并打印主键值,并找出是否有任何对象具有相同的主键值。只需将 print 函数放入 for 循环中,即可在调用 line 之前打印每个对象的主键值session.saveOrUpdate(bean);。
| 归档时间: |
|
| 查看次数: |
13015 次 |
| 最近记录: |