Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

Hibernate运行机理

$
0
0

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




作者:hongchangfirst 发表于2013-8-23 14:39:03 原文链接
阅读:3 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>