博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate4.1.4配置二级缓存EHCache步骤
阅读量:6509 次
发布时间:2019-06-24

本文共 1886 字,大约阅读时间需要 6 分钟。

1、当然首先引入EHCache相关的jar包

 

这些包不需要另外下载,在Hibernate官方网站下载Hibernate4.1.7的压缩包(如:hibernate-release-4.1.7.Final.zip)解压,引入hibernate-release-4.1.7.Final\hibernate-release-4.1.7.Final\lib\optional\ehcache目录下的ehcache-core-2.4.3.jar、hibernate-ehcache-4.1.4.Final.jar、slf4j-api-1.6.1.jar三个jar包即可(就是添加到referenced libraries下)。

 

2、在项目classpath的根目录下面写好EHCache的配置文件ehcache.xml

 

此配置文件可以直接到HIBERNATE_HOME\project\etc\ehcache.xml拷贝到src目录下即可。(里面有3个例子,只需要一个用默认缓存配置就可以)

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <ehcache>   
  3.  <diskStore path="java.io.tmpdir"/>   
  4.   <defaultCache   
  5.    maxElementsInMemory="10000" <!-- 缓存最大数目 -->   
  6.    eternal="false" <!-- 缓存是否持久 -->   
  7.    overflowToDisk="true" <!-- 是否保存到磁盘,当系统当机时-->   
  8.    timeToIdleSeconds="300" <!-- 当缓存闲置n秒后销毁 -->   
  9.    timeToLiveSeconds="180" <!-- 当缓存存活n秒后销毁-->   
  10.    diskPersistent="false"   
  11.    diskExpiryThreadIntervalSeconds= "120"/>   
  12. </ehcache>   

3、在Hibernate配置文件里面启用EHCache

 

说明一下:如果不设置“查询缓存”,那么hibernate只会缓存使用load()方法获得的单个持久化对象,如果想缓存使用 findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集的话, 就需要在配置文件中设置hibernate.cache.use_query_cache true 才行

  1. <!-- 开启二级缓存 -->  
  2. <property name="cache.use_second_level_cache">true</property>  
  3.  <!-- 开启查询缓存 -->    
  4. <property name="hibernate.cache.use_query_cache">true</property>                   
  5. <!-- 配置RegionFactory为Ehcache的RegionFactory -->  
  6. <property name="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property>  

4、配置哪些实体类的对象需要二级缓存

在Hibernate配置文件hibernate.cfg.xml中统一配置(推荐)

 

  注意,这个<class-cache>标签必须放在<mapping>标签的后面!!

[html] 
 
  1. <!--   
  2.         配置哪些实体类的对象需要二级缓存  
  3.         usage属性为缓存策略  
  4. -->  
  5. <class-cache usage="read-only" class="com.ru.domain.Student"/>  

 

说明一下:如果不设置“查询缓存”,那么hibernate只会缓存使用load()方法获得的单个持久化对象,如果想缓存使用 findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集的话, 就需要在配置文件中设置 hibernate.cache.use_query_cache true 才行 

 

    1. <!-- 开启查询缓存 -->    
    2. <property name="hibernate.cache.use_query_cache">true</property>    

转载于:https://www.cnblogs.com/sandea/p/3818601.html

你可能感兴趣的文章
Redis客户端redisson实战
查看>>
连接到 JasperReports Server
查看>>
java处理高并发高负载类网站问题
查看>>
使用C#生成随机密码(纯数字或字母)和随机卡号(数字与字母组合)
查看>>
CAS服务器端集群
查看>>
Android内存泄漏的常见场景及解决方案
查看>>
设计模式 之 访问者模式
查看>>
JAVA Collections框架
查看>>
更改Windwos server 2003 域用户密码策略默认配置
查看>>
网站白名单可行性分析
查看>>
进制转换
查看>>
反转字符串中的单词
查看>>
html与html5的一些区别
查看>>
ASCII码
查看>>
java常用四种排序源代码
查看>>
win7 下硬盘安装Redhat7
查看>>
js图表控件:highcharts的应用
查看>>
Redis 分布式锁的正确实现方式
查看>>
mysqldump 备份命令使用中的一些经验总结
查看>>
Linux下MySql安装配置方法总结
查看>>