设为首页 加入收藏

TOP

Hibernate中session的操作
2014-11-24 13:47:33 来源: 作者: 【 】 浏览:1
Tags:Hibernate session 操作

Hibernate中的Session有多个方法,下面对Session的常用方法进行一下简单的介绍:


查询方法get和load


get方法:不支持lazy(延迟加载),查询数据不存在时返回null


load方法:默认支持lazy(可以设置为不支持),查询数据不存在时返回objectNotFoundException异常。


添加方法save


session.save(obj)插入你实体类的对象。然后运用Hibernate的sql语句进行insert操作(未提交)。


清除方法Evict和Clear


session.evict(obj)会把指定的缓冲对象进行清除。


session.clear()把缓冲区内的全部对象清除,但不包括操作中的对象。


Flush方法


session.flush()可以强制进行从内存到数据库的同步。


对这几个方法有所了解后,来看一下他们的执行顺序:


(1)生成一个事务的对象,并标记当前的 Session 处于事务状态(注:此时并未启动数据库级事务)。


(2)应用使用 session.save 保存对象,这个时候 Session 将这个对象放入 entityEntries 。


(3)session.evict 将对象从 session会话中拆离,这时 session 会从 entityEntries 中将这个对象移出。


(4)事务提交,需要将所有缓存 flush 入数据库, Session 启动一个事务,并按照 insert,update,……,delete 的顺序提交所有之前登记的操作。


(注意:所有 insert 执行完毕后才会执行 update ,如需要控制操作的执行顺序,要善于使用 flush )


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Hibernate中的抓取策略 下一篇Hibernate中的缓存机制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: