this.getSession().update(obj); this.getSession().merge(obj); this.getSession().saveOrUpdate(obj); 1. update 和 merge的区别 首先在执行更新操作的时候,两者都必须要有id update是直接执行update 语句,执行后状态为持久化状态 而merge则不一样: 1. 如果session中有与之对应的对象,也就是主键相同,则会把要保存的obj的值copy给session中的对象,然后up…
1.load()与get()的区别: (1)load()读取 User user = (User)session.load(User.class, userId); (2)get()读取 User user = (User)session.get(User.class, userId); 以上是load与get的读取方式,看上去差不多,以下来说说他们的区别: (1)load方法读取是假定在数据库中存在的,如果在数据库中不存在,则会抛出异常:    而get方法不会去假定数据库中是否存在,如果不存…
1.首先 saveOrUpdate返回void 也就是什么都不返回 而merge会返回一个对象 2.其次 saveOrUpdate的做法是:自动判断该对象是否曾经持久化过,如果曾持久化过则使用update操作 否则save操作,merge 在执行session.merge(a)代码后,a对象仍然不是持久化状态,a对象仍然不会被关联到Session上 而update会持久化对象 1.pojo对象中有属性为null时,使用merge不更新数据库,使用saveOrUpdate更新数据库. 使用save…
在看这几个方法区别之前,有必要了解hibernate实体对象的三种状态,点击查看 http://www.cnblogs.com/Y-S-X/p/8345754.html 一.update 和 merge的区别 首先在执行更新操作的时候,两者都必须要有id update是直接执行update 语句,执行后状态为持久化状态 而merge则不一样: 1. 如果session中有与之对应的对象,也就是主键相同,则会把要保存的obj的值copy给session中的对象,然后update被复制后的sessi…
Hibernate的对象有三种状态:瞬态.持久态和游离态.游离状态的实例可以通过调用save().persist()或者saveOrUpdate()方法进行持久化:脱管状态的实例可以通过调用 update().0saveOrUpdate().lock()或者replicate()进行持久化.save()和persist()将会引发SQL的INSERT语句,而update()或merge()会引发UPDATE语句.save()和update()的区别在于一个是将瞬态对象变成持久态,一个是将游离态对…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一.预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient.persistent.detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久化状态detached:脱管状态或者游离态 游离状态的实例可以通过调用save().persist()或者saveOrUpdate()方法进行持久化.持久化实例可…
hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别 转自http://www.blogjava.net/bnlovebn/archive/2007/07/13/130025.html 一.load,get(1)当记录不存在时候,get方法返回null,load方法产生异常 (2)load方法可以返回实体的代理类,get方法则返回真是的实体类 (3)load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据,而ge…
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一.预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient.persistent.detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久化状态detached:脱管状态或者游离态 游离状态的实例可以通过调用save().persist()或者saveOrUpdate()方法进行持久化.持久化实例可…
[z]https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate 1. Introduction In this article we will discuss the differences between several methods of the Sessioninterface: save, persist, update, merge, saveOrUpdate. This is not an i…