论坛首页 入门技术论坛

Hibernate中的Update()和saveOrUpdate()的区别,session的load()和get的区别

浏览 3096 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-01-27  


   saveOrUpdate()方法可以实现update()的功能,但是会多些步骤,具体如下:

  如果对象在该session种已经持久化,不进行操作;对象的标识符属性(identifier property)

在数据库中不存在或者是个暂时的值,调用save()方法保存它;如果session中的另一个对象

有相同的标识符抛出一个异常;以上皆不符合则调用update()更新之。

  session.load/get方法均可以根据指定的实体类和id从数据库读取记录,get方法返回null,

而load方法会抛出一个ObjectNotFoundException;load方法可返回实体的代理类实例,

  而get方法永远直接返回实体类;load方法可以充分利用内部缓存和二级缓存中的现有数据

而get方法则仅仅在内部缓存中进行数据查找,如果没有发现对应的数据,将越过二级缓存,

直接调用sql完成数据读取。
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics