当前位置:首页 > 开发 > 研发管理 > 正文

Hibernate缓存总结

发表于: 2015-07-08   作者:cuishikuan   来源:转载   浏览:
摘要: 一、为什么要用Hibernate缓存? Hibernate是一个持久层框架,经常访问物理数据库。 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。   二、Hibernate缓存原理是怎样的? Hibernate缓存包括两大类:Hib

一、为什么要用Hibernate缓存?

Hibernate是一个持久层框架,经常访问物理数据库。

为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。

缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。

 

二、Hibernate缓存原理是怎样的?

Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存。

1.Hibernate一级缓存又称为“Session的缓存”。

Session内置不能被卸载,Session的缓存是事务范围的缓存(Session对象的生命周期通常对应一个数据库事务或者一个应用事务)。

一级缓存中,持久化类的每个实例都具有唯一的OID。


2.Hibernate二级缓存又称为“SessionFactory的缓存”。

由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。

第二级缓存是可选的,是一个可配置的插件,默认下SessionFactory不会启用这个插件。

Hibernate提供了org.hibernate.cache.CacheProvider接口,它充当缓存插件与Hibernate之间的适配器。

什么样的数据适合存放到第二级缓存中?   
1) 很少被修改的数据   
2) 不是很重要的数据,允许出现偶尔并发的数据   
3) 不会被并发访问的数据   
4) 常量数据   
不适合存放到第二级缓存的数据?   
1) 经常被修改的数据   
2) 绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发   
3) 与其他应用共享的数据。

  

3.Hibernate查找对象如何应用缓存?
当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;

查不到,如果配置了二级缓存,那么从二级缓存中查;

如果都查不到,再查询数据库,把结果按照ID放入到缓存删除、更新、增加数据的时候,同时更新缓存。

Hibernate缓存总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
今天发现之前做的一个restful web based application有一个bug。比如先执行一个搜索,结果中有10条
参考文章:关于hibernate的缓存使用 这篇博文已经说的很详细,不过我这里还有一些补充说明的。 ——
一、Hibernate缓存简介 1、Hibernate缓存概述 Hibernate缓存机制对Hibernate的性能发挥一直处于一个
一、Hibernate缓存简介 1、Hibernate缓存概述 Hibernate缓存机制对Hibernate的性能发挥一直处于一个
持久层缓存的级别 事务级别的缓存 应用(进程)级别的缓存 分布式级别的缓存 Hibernate的一级缓存 Hib
Hibernate4.1.4配置二级缓存EHCache步骤 1、当然首先引入EHCache相关的jar包 这些包不需要另外下载
1、概述 2、缓存 <a href="http://
hibernate缓存【转载】 hibernate 一级缓存:(缓存的是实体对象) 一级缓存很短和session的生命周期
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序
Hibernate一级缓存: Hibernate中的一级缓存的理解,一共进行了三次查询。 第一次因为缓存中没有数
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号