hibernate saveOrUpdate方法和merge的区别
2014-11-06 10:43
393 查看
首先 saveOrUpdate返回void 也就是什么都不返回 而merge会返回一个对象
其次 saveOrUpdate的做法是:将对象持久化,如果此时session缓存中存在相同id的对象,则报错;否则如果没有id就保存;有id的话,能找到这个id的对象就修改或者找不到就保存
merge 在执行session.merge(a)代码后,a对象仍然不是持久化状态,a对象仍然不会被关联到Session上 而update会持久化对象
说白了:merge()用法替代了hibernate早期版本的saveOrUpdateCopy,因此该方法的作用只是将当前对象信息保存到数据库,并且不会将对象转换成持久化状态。
merge 和saveOrUpdate不一样,当session中某持久化对象有id相同的两个纪录时,必须用merge,merge会在保存之前来合并记录,不然会报错。合并记录后的动作和saveOrUpdate一样。
其次 saveOrUpdate的做法是:将对象持久化,如果此时session缓存中存在相同id的对象,则报错;否则如果没有id就保存;有id的话,能找到这个id的对象就修改或者找不到就保存
merge 在执行session.merge(a)代码后,a对象仍然不是持久化状态,a对象仍然不会被关联到Session上 而update会持久化对象
说白了:merge()用法替代了hibernate早期版本的saveOrUpdateCopy,因此该方法的作用只是将当前对象信息保存到数据库,并且不会将对象转换成持久化状态。
merge 和saveOrUpdate不一样,当session中某持久化对象有id相同的两个纪录时,必须用merge,merge会在保存之前来合并记录,不然会报错。合并记录后的动作和saveOrUpdate一样。
相关文章推荐
- Hibernate merge、update与saveOrUpdate方法的区别
- hibernate中各种保存方法的区别 save persist update saveOrUpdate merge lock
- Hibernate merge、update与saveOrUpdate方法的区别
- hibernate saveOrUpdate方法和merge的区别
- Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别
- Hibernate merge、update与saveOrUpdate方法的区别
- hibernate中各种保存方法的区别 save persist update saveOrUpdate merge lock
- Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别
- Hibernate的merge与update方法的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- Hibernate的merge与update方法的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- hibernate的save,update,saveorupdate以及merge区别
- hibernate merge和saveOrUpdate方法
- Hibernate中saveOrUpdate、update和merge的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- Hibernate的merge与update方法的区别
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别