Hibernate4 + Ehcache 配置问题

1、遇到的问题:

 

Xml代码   收藏代码
  1. Caused by: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given, please either disable second level cache or set correct region factory class name to property hibernate.cache.region.factory_class (and make sure the second level cache provider, hibernate-infinispan, for example, is available in the classpath).  
  2.     at org.hibernate.cache.internal.NoCachingRegionFactory.buildTimestampsRegion(NoCachingRegionFactory.java:87)  
  3.     at org.hibernate.cache.spi.UpdateTimestampsCache.<init>(UpdateTimestampsCache.java:63)  
  4.     at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:72)  
  5.     at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40)  
  6.     at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35)  
  7.     at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91)  
  8.     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:176)  
  9.     ... 25 more  

 

 解决办法:

 

在网上查了资料,了解hibernate4.0在hibernate.cfg.xml配置二级缓存和hibernate3.3有所不同,本例子用的是 Hibernate-core.4.1.7.Final+ ehcache-core.2.6.0,用query的话就要配置查询缓存喽 

 

4.0配置如下:

<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>

3.3配置如下:

<property name="hibernate.cache.use_second_level_cache">true</property>

<property name="cache.provider_class ">org.hibernate.cache.EhCacheProvider</property>


完整的二级缓存配置:配置之前先拷贝一个ehcache.xml文件到src文件下

 

  1. hibernate.cfg.xml 设定: <property name="hibernate.cache.use_second_level_cache">true</property>
    <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
  2. @Cache注解(由hibernate扩展提供)     @Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
  3. 用load测试(二级缓存是SessionFactory级别的缓存)

需要在pom.xml中添加

Xml代码   收藏代码
  1. <dependency>  
  2.   <groupId>org.hibernate</groupId>  
  3.   <artifactId>hibernate-ehcache</artifactId>  
  4.   <version>4.1.7.Final</version>  
  5. </dependency>  

 否则会报错:

Unable to load class [org.hibernate.cache.ehcache.EhCacheRegionFactory]

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值