首页 > Web开发 > 详细

hibernate的session对象核心方法注意的问题

时间:2015-11-24 22:06:11      阅读:267      评论:0      收藏:0      [点我收藏+]

1.session.save()方法

  1).session.save()方法会使一个对象从临时状态转变为持久化状态。

  2).session.save()方法会赋予持久化对象的OID属性一个ID值,以对应数据库该条数据。

  3).在session.flush()被调用时,session.save()方法会发送一条insert SQL语句。

  4).持久化对象的OID值不能被修改,尝试修改会抛出异常。

2.session.persist()方法

  1).session.persist()和save()方法的区别在于,如果临时对象的OID属性已经有ID值了,则不会执行insert语句,而会抛出异常。save()方法会忽略这个已有的ID值继续insert,然后再根据生成的ID覆盖掉已有的ID。

3.session.get()和session.load()方法

  1)两者都会查询一条数据,返回该数据的持久化对象。

  2)session.get()方法在调用后立即返回持久化对象,session.load()方法会返回一个代理对象,在对象的方法属性被调用时,再初始化加载该对象,实现延迟加载。

  3)session.load()的代理对象如果没能完成初始化,而session.close()方法被调用了。则尝试加载时会抛出异常。session.get()方法得到的持久化对象在session.close()后依然可以使用,只是对象状态发生了变化。

  4)如果查询不到值,session.get()方法返回null,session.load()方法返回的代理对象在初始化时抛出异常。

hibernate的session对象核心方法注意的问题

原文:http://www.cnblogs.com/derry9005/p/4992907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!