在使用Hibernate saveOrUpdate 批量保存或更新数据时(也就是即有保存又有更新),有时会报如下错误:
org.hibernate.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.lee.dao.hibernate.User#12]
方法的调用:
evaluateService.saveOrUpdate(comment,orderDetail,user)
原始报错方法如下:
@Transactional
public void saveOrUpdate(Object...objects) {
for(Object obj : objects){
getHibernateTemplate().saveOrUpdate(obj);
getHibernateTemplate().flush();
}
}
修改后方法如下:
@Transactional
public void saveOrUpdate(Object...objects) {
for(Object obj : objects){
getHibernateTemplate().saveOrUpdate(obj);
getHibernateTemplate().flush();
getHibernateTemplate().clear();//后添加
}
}
分享到:
相关推荐
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
saveOrUpdate
Hibernate merge、update与saveOrUpdate方法的区别
05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法
在Hibernate中,最核心的概念就是对PO的状态管理。
7.1.2 级联保存和更新 7.2 映射一对多双向关联关系 7.2.1 元素的inverse属性 7.2.2 级联删除 7.2.3 父子关系 7.3 映射一对多双向自身关联关系 7.4 改进持久化类 7.5 小结 7.6 思考题 第8章 通过...
博文链接:https://log-cd.iteye.com/blog/205166
07_实体类或属性名与数据库关键字冲突问题 10_使用Hibernate完成CRUD实验的步骤说明 11_完成CRUD实验并回顾和补充细节知识(上) 12_完成CRUD实验并回顾和补充细节知识(下) 13_总结分析第一天的讲解内容 14_...
//只要更新的对象设置了主键的值就可以更新而无需先获取 (5).get(Class classes,Serializable pk); //该方法会立即加载/获取数据(只要调用该方法就会立即向数据库发出查询语句),该方法只在内部缓存查找数据,如果...
我身边的朋友经常会分不清save、saveOrUpdate、update的区别,lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且关于实体对象的生命周期也有很多概念不清,分不清transient、persistent、...
Hibernate位于持久化层,是域模型和关系数据模型之间的桥梁。 1.1 应用程序的分层体系结构 1 1.1.1 区分物理层和逻辑层 2 1.1.2 软件层的特征 3 1.1.3 软件分层的优点 4 1.1.4 软件分层的缺点 4 1.1.5 Java...
Hibernate持久层方法汇总 session.load, session.find, session.iterator, session.save, session.update, session.saveorupdate
void saveOrUpdate(Object entity):根据实例状态,选择保存或更新 void update(Object entity):更新实例的状态 void setMaxResults(int maxResults):设置分页的大小 24.3 Spring对Hibernate的简化 24.3.4 ...
7.1.2 级联保存和更新 7.2 映射一对多双向关联关系 7.2.1 元素的inverse属性 7.2.2 级联删除 7.2.3 父子关系 7.3 映射一对多双向自身关联关系 7.4 改进持久化类 7.5 小结 7.6 思考题 第8章 通过...
7.1.2 级联保存和更新 7.2 映射一对多双向关联关系 7.2.1 元素的inverse属性 7.2.2 级联删除 7.2.3 父子关系 7.3 映射一对多双向自身关联关系 7.4 改进持久化类 7.5 小结 7.6 思考题 第8章 通过...
7.1.2 级联保存和更新 7.2 映射一对多双向关联关系 7.2.1 元素的inverse属性 7.2.2 级联删除 7.2.3 父子关系 7.3 映射一对多双向自身关联关系 7.4 改进持久化类 7.5 小结 7.6 思考题 第8章 通过...
你不必一定用hibernate.cfg.xml或hibernate.properties这两文件名, 你也不一定非得把配置文件放在Classes下, File file=new File("c:\\sample\\myhibernate.xml"); Configuration config=new ...