失败ehcache 4.3.7。最终配置

时间:2018-04-13 07:51:44

标签: hibernate ehcache

在hibernate中配置二级缓存时遇到问题。 我的配置如下:

hibernate_sp.cfg.xml

<!-- Propiedades Cache Provider -->
    <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
    <property name="hibernate.cache.use_structured_entries">true</property>
    <property name="hibernate.cache.use_query_cache">true</property>
    <property name="hibernate.cache.use_second_level_cache">true</property>
    <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
    <property name="net.sf.ehcache.configurationResourceName">config/ehcache.xml</property> 

的pom.xml

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-ehcache</artifactId>
        <version>4.3.7.Final</version>
    </dependency>

查询缓存

subquery.setCacheable(true);
return query.setHint("org.hibernate.cacheable", true).getResultList();

实体Usuario.java

@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)

ehcache.xml中

 <ehcache>
  <diskStore path="java.io.tmpdir"/>
  <defaultCache
     maxEntriesLocalHeap="10000"
     eternal="false"
     timeToIdleSeconds="120"
     timeToLiveSeconds="120"
     maxEntriesLocalDisk="10000000"
     diskExpiryThreadIntervalSeconds="120"
     memoryStoreEvictionPolicy="LRU"
     <persistence strategy="localTempSwap"/>
  />
</ehcache>

当我部署应用程序时,它会向我显示此错误

 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 using the hibernate.cache.region.factory_class setting and make sure the second level cache provider (hibernate-infinispan, e.g.) is available on the classpath."}}

他似乎不承认该财产,我该怎么办?提前谢谢。

0 个答案:

没有答案