我无法使用hibernate配置ehcache

时间:2017-02-01 06:53:09

标签: hibernate ehcache

我使用的相应jar文件如下:

  • ehcache的-3.2.0
  • hibernate-ehcache-5.0.2.Final
  • hibernate-core-5.0.2.Final

配置是这样的:

  <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> 
 <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
 <prop key="hibernate.cache.use_second_level_cache" >true</prop>
 <prop key="hibernate.cache.use_query_cache">true</prop>
 <prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>

我收到这样的错误:

  

java.lang.NoClassDefFoundError:net / sf / ehcache / CacheException

帮助我解决这个问题。

2 个答案:

答案 0 :(得分:6)

您正在使用Ehcache 3(这很好),但正在使用兼容Ehcache 2的区域工厂。

对于符合JCache的Ehcache 3,您应该使用org.hibernate.cache.jcache.JCacheRegionFactory

您可以在此处找到完整示例:https://github.com/ehcache/ehcache3-samples/tree/master/fullstack。查看README.md以查找有趣的文件。

注意:正如路易斯在评论中提到的,你需要Hibernate 5.2才能获得JCache支持。

答案 1 :(得分:-2)

我认为你需要这个神器:

<dependency> 
   <groupId>net.sf.ehcache</groupId> 
   <artifactId>ehcache-core</artifactId> 
   <version>2.10.3</version> 
</dependency>

它包含您的应用程序正在寻找的net.sf.ehcache个包/类。

基于你的hibernate属性:

<prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>