Hibernate中的Session缓存机制
2014-04-26 22:15
281 查看
一级缓存:Session级别的缓存 当Session被open时,缓存即被open 当Session被close时,缓存即被close 在缓存open到close这段时间,多次加载同一个持久化对象,只有第一次向数据库发送SQL语句加载,之后的加载都是基于缓存的 不过Session从打开到关闭的时间很短暂,一般在项目中都是在业务方法开始时打开Session,调用结束后即关闭Session,在如此短暂的瞬间时刻内,多次加载同一个对象的可能性不大,换言之,一级缓存的可用之处也并不大 二级缓存:SessionFactory级别的缓存 跟Session同理,level2 cache会随着sessionFactory的打开而打开,关闭而关闭。 但是在一般的应用程序中,sessionfactory会以单例的形式存在,所以在整个应用程序的生命周期里,sessionfactory会一直存在。既二级缓存也一直存在直到关闭应用程序。 二级缓存分为好几种,简单来讲就是类级别的缓存class-cache和查询缓存 query-cache. 前者是以id作为缓存的key。 后者是以查询条件作为缓存的key。 具体配制方法这里不便细述
在Session中delete(a)时,如果a是持久化对象(已经在Session的缓存中),Session就执行delete语句,删除数据库中对应的记录。如果a是游离对象,先使游离对象a和Session关联(其实就是加载到Session的缓存中),使它变成一个持久化对象,然后再执行delete语句。Session的增删改查是面相对象的。另外补充一点:在项目中,一般不太实用hibernate原生的缓存机制,原因是不好管理。更多时候,我们在业务层使用自己写的cache
欢迎评论彼此学习
相关文章推荐
- hibernate的session缓存机制
- Hibernate(十三)session缓存机制和三种对象状态
- 理解hibernate的session缓存机制(一级缓存和二级缓存)
- Java程序员从笨鸟到菜鸟之(六十二)细谈Hibernate(十三)session缓存机制和三种对象状态
- Hibernate(三)session缓存机制和三种对象状态
- Hibernate(十三)session缓存机制和三种对象状态
- Java程序员从笨鸟到菜鸟之(六十二)细谈Hibernate(十三)session缓存机制和三种对象状态
- 理解Hibernate的Session和缓存机制
- Hibernate入门(三)之hibernate 的session的缓存机制
- hibernate笔记--缓存机制之 一级缓存(session缓存)
- Java程序员从笨鸟到菜鸟之(六十二)细谈Hibernate(十三)session缓存机制和三种对象状态
- Hibernate中的缓存机制
- 理解Session缓存机制 操纵持久化对象
- Spring控制Hibernate的缓存机制ehcache
- Hibernate 缓存机制浅析
- hibernate 缓存机制
- 分析Hibernate的缓存机制
- Hibernate 缓存机制详细解析
- Hibernate——脏检查和缓存清理机制
- Hibernate 缓存机制