您的位置:首页 > 其它

Hibernate内部运行机理

2013-08-23 14:39 162 查看
Hibernate 的缓存体系

一级缓存:

Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。

每个Session 都有自己独立的缓存,且只能被当前工作单元访问。

二级缓存:

SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。

SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。 

Hibernate 中Java对象的状态

1.临时状态 (transient)

   1不处于Session 缓存中

   2数据库中没有对象记录

何时进入临时状态?

   1通过new语句刚创建一个对象时

   2当调用Session 的delete()方法,从Session 缓存中删除一个对象时。 

2.持久化状态(persisted)

   1处于Session 缓存中

   2持久化对象数据库中设有对象记录

   3Session 在特定时刻会保持二者同步

何时进入持久化状态?

   1Session 的save()把临时->持久化状态

   2Session 的load(),get()方法返回的对象

   3Session 的find()返回的list集合中存放的对象

   4Session 的update(),saveOrupdate()使游离->持久化

3.游离状态(detached)

   1不再位于Session 缓存中

   2游离对象由持久化状态转变而来,数据库中可能还有对应记录。

何时进入持久化状态?

   1Session 的close()方法

   2Session 的evict()方法,从缓存中删除一个对象。

原文:http://blog.csdn.net/hongchangfirst/article/details/8111824

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐