Hibernate saveOrUpdate 批量保存或更新问题

阅读更多

在使用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();//后添加
	}
}
 

你可能感兴趣的:(saveOrUpdate)