hibernate方法比较
来源:互联网 发布:软件项目管理规范 编辑:程序博客网 时间:2024/05/29 07:41
当需要使用update来保存程序对持久化对象所作的修改时,如果不清楚该对象是否曾经持久化过,那么程序可以选择使用 saveOrUpdate()的方法,该方法自动判断该对象是否曾经持久化过,如果曾经持久化过,就使用update(),否则就save().
Code
1 User u = session1.load(User.class,new Integer(pk));
2 //第一个session session1关闭
3 session1.close();
4 u.setName="sasa";
5
6 //打开第二个Session
7 Session session2 = ..
8 //保存托管对象所作的修改
9 session2.update(u);
当我们用另一个Session来保存这种修改后,该托管对象将再次回到Session的管理之下,也就在此回到持久化状态。
merge()方法也可以将程序对托管对象所作的修改保存到数据库里,但是merge()与update()方法最大的区别就是:merge()方法不会持久化给定对象。举例来说:当我们执行session.update(u)后,u对象将会变成持久化状态,而执行session.merge(u),u对象依然不是持久化状态,u对象依然不会被关联到Session上。
当程序使用merge()方法来保存程序对托管对象所作的修改时,如果session中存在相同持久化标识的持久化对象时,merge()方法里提供对象的状态将覆盖原有持久化实例的状态。如果Session中没有相应的持久化实例,则尝试从数据库中加载,或创建新的持久化实例,最后返回该持久化实例。
提示:merge()用法代替了Hibernate早期版本的saveOrUpdateConpy
首先, merge作用大致相当于saveorupdate这个方法, 即有唯一性标识, 则运行save, 没有则运行update
下面来比较2者的区别, update(object), 方法运行后, object是持久化状态, 而Object obj = merge(object), 方法运行后, object是脱管状态, obj是持久化状态
最后比较2者的性能, 本人使用for循环测试10000次, merge: 150ms, update: 50ms, 显然update性能占优势.
所以, merge的用法应该是在需要返回被保存的对象时使用.
最后娱乐一下 一部很好看的儿童动漫: 蛋计划 欢乐动漫
- Hibernate查询方法比较
- hibernate方法比较
- hibernate的一下方法比较及介绍
- Hibernate的Query的三种方法比较
- Hibernate提供的操作数据库的方法使用和比较
- Hibernate提供的操作数据库的方法使用和比较
- hibernate的session.get/load方法的比较
- hibernate数据状态以及更改数据状态的方法比较
- Hibernate的get和load方法的比较
- hibernate中session的get()、load()方法比较
- hibernate中session的get()、load()方法比较
- SSH应用--Hibernate 访问数据库的三种方法比较
- hibernate中session的get()、load()方法比较
- hibernate中session的get()、load()方法比较
- hibernate中session的get()、load()方法比较
- hibernate 中 session的get 和load方法比较
- Hibernate的状态及持久化是的各种方法比较
- hibernate的get,load,persist方法比较(二)
- java virtual machine 探讨
- 域策略下发bginfo
- Find Minimum in Rotated Sorted Array II
- 为程序增加处理速度的限制
- Good Bye 2014(codeforces)
- hibernate方法比较
- Java 专业人士必备的书籍和网站列表
- 机器学习入门:线性回归及梯度下降
- IO扩展控件(System.IO.Abstractions)
- 彻底解决 Canvas 引起的 java.lang.unsupported operation exception, android.view.GLES20Canvas.clipPath(GLES20
- 让div自动适应高度
- js操作frameset frame 对象
- 彻底解决WebView加载html乱码问题
- MongoDB基本命令使用