首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Hibernate4 + Ehcache 配置有关问题

2012-11-21 
Hibernate4 + Ehcache 配置问题1、遇到的问题:?Caused by: org.hibernate.cache.NoCacheRegionFactoryAvail

Hibernate4 + Ehcache 配置问题

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).at org.hibernate.cache.internal.NoCachingRegionFactory.buildTimestampsRegion(NoCachingRegionFactory.java:87)at org.hibernate.cache.spi.UpdateTimestampsCache.<init>(UpdateTimestampsCache.java:63)at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:72)at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40)at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35)at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91)at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:176)... 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文件下

?

    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>@Cache注解(由hibernate扩展提供)??? @Cache(usage=CacheConcurrencyStrategy.READ_WRITE)用load测试(二级缓存是SessionFactory级别的缓存)

需要在pom.xml中添加

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

?否则会报错:

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

?

热点排行