您的位置:首页 > 其它

[置顶] Hibernate运行机理

2013-08-23 18:07 204 查看
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()方法,从缓存中删除一个对象。

原文:/article/2792002.html

作者:hongchangfirst

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