CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1
Processed in 8 ms,0 (Queries) Gzip enabled
粤ICP备07511478号
| 风信Java论坛 ›› Hibernate 讨论专区 ›› hibernate 缓存详解 | 登录 -> 注册 |
|
1F hibernate 缓存详解 jastby Post by : 2008-09-28 17:32:58.0
Java对象的属性(通常是一些集合类型的属性 )占用的内存空间。如果对象的占用的内存很大就称为重量级的对象。如果对象的内存小就称为轻量级的对象。 Session 的缓存被称为hibernate的第一级缓存。SessionFactory的外置缓存称为hibernate 的二级缓存。这两个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存 存放元数据和预定义SQL, SessionFactory的内置缓存是只读缓存。 Session 缓存的三大作用: 1,减少数据库的访问频率,提高访问性能。 2,保证缓存中的对象与数据库同步,位于缓存中的对象称为持久化对象。 3,当持久化对象之间存在关联时,Session 保证不出现对象图的死锁。 Session 如何判断持久化对象的状态的改变呢? Session 加载对象后会为对象值类型的属性复制一份快照。当Session 清理缓存时,比较当前对象和它的快照就可以知道那些属性发生了变化。 Session 什么时候清理缓存? 1,commit() 方法被调用时 2,查询时会清理缓存,保证查询结果能反映对象的最新状态。 3,显示的调用session 的 flush方法。 session 清理缓存的特例: examda提示: 当对象使用 native 生成器时会立刻清理缓存向数据库中插入记录。 |
| 风信Java论坛 ›› Hibernate 讨论专区 ›› hibernate 缓存详解 | 登录 -> 注册 |