码迷,mamicode.com
首页 > 数据库 > 详细

同时操作两个数据库:报错Illegal attempt to associate a collection with two open sessions

时间:2016-11-19 13:16:49      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:持久化对象   方法   bsp   row   .com   状态   rup   com   iss   

今天我在一个操作两个数据库的SSH里 同时插入1条数据  

报错 Illegal attempt to associate a collection with two open sessions

在这里有答案:http://fuaotech.iteye.com/blog/1298826

使用hibenate的merge方法代替save、update等方法。 
merge和saveOrUpdate方法区别在于:merge方法是把我们提供的对象转变为托管状态的对象;而saveOrUpdate则是把我们提供的对象变成一个持久化对象;说的通俗一点就是:saveOrUpdate后的对象会纳入session的管理,对象的状态会跟数据库同步,再次查询该对象会直接从session中取,merge后的对 象不会纳入session的管理,再次查询该对象还是会从数据库中取。所以一般建议用merge 

将MissionDaoImpl类中的 this.getHibernateTemplate().save(data);    save方法改为了merge方法 

将此方法:public boolean addData(Object data) throws Exception { 
this.getHibernateTemplate().save(data); 
return true; 

同时操作两个数据库:报错Illegal attempt to associate a collection with two open sessions

标签:持久化对象   方法   bsp   row   .com   状态   rup   com   iss   

原文地址:http://www.cnblogs.com/wangshishuo26/p/6080053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!