我无法使用休眠配置 ehcache

I am not able to configure ehcache with hibernate

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

配置是这样的:

  <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

帮我解决这个问题。

我觉得你需要这个神器:

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

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

基于你的休眠状态属性:

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

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

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

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

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