hibernate saveOrUpdate方法和merge的区别
发布日期:2021-07-20 20:53:18 浏览次数:18 分类:技术文章

本文共 421 字,大约阅读时间需要 1 分钟。

首先 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一样。

转载地址:https://blog.csdn.net/liao0801_123/article/details/82986357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mybatis实现hibernate中的saveOrUpdate方法
下一篇:jstat结合 jvisualvm.exe(java自带内存分析工具)分析内存泄漏实例

发表评论

最新留言

感谢大佬
[***.77.167.74]2022年12月04日 12时23分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

Runnable与Callable 2019-04-24 12:56:01
线程安全 2019-04-24 12:56:00
多线程的实现 2019-04-24 12:56:00
多线程 2019-04-24 12:55:59
IO流 2019-04-24 12:55:59
Map 2019-04-24 12:55:59
Comparable和Comparator的异同 2019-04-24 12:55:55
List 2019-04-24 12:55:54
Set 2019-04-24 12:55:54
Iterator迭代器 2019-04-24 12:55:53
Collection集合 2019-04-24 12:55:53
常见的数据结构 2019-04-24 12:55:52
链表与二叉树 2019-04-24 12:55:52
常用类库:String 2019-04-24 12:55:51
常用类库 java.util.Calendar 2019-04-24 12:55:51
DateFormat 2019-04-24 12:55:50
常用类库java.util.Arrays 2019-04-24 12:55:46
常用类库java.util.Objects 2019-04-24 12:55:46
面向对象测试问题 2019-04-24 12:55:45
关于异常finally的问题 2019-04-24 12:55:44