2014-01-24 54 views
0

在Hibernate 3.x版有可能配置hibernate.cfg 2級緩存是這樣的:休眠4.3.0 2級緩存配置

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

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

在4.3.0版本org.hibernate.cache包中沒有EhCacheProvider類。

這種情況的解決方法是什麼?

感謝

+2

http://docs.jboss.org/hibernate/core/4.3/manual/en-US/html_single/#performance-cache –

+1

嗨。該鏈接指出,爲了使用'EHCache',我需要一個'org.hibernate.cache.ehcache.EhCacheRegionFactory'屬性。再次,那裏沒有這樣的課。 – whiteErru

回答

1

STEP 1加入了Ehcache依賴

休眠附帶了Ehcache庫

1.1] Maven的依賴

在您的應用程序中添加的Maven依賴於的Ehcache作爲

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>[2.0.0]</version> 
    <type>pom</type> 
</dependency> 

1.2]下載JAR文件

如果你不使用Maven的依賴,你可以下載的罐子文件從Download URL 添加此jar文件到lib目錄和你的項目CLASSPATH

STEP 2配置了Ehcache

要配置的Ehcache,你需要做兩步:

2.1]配置Hibernate的第二級緩存

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

2.2]指定的二級緩存提供

的Hibernate 3.3及以上

<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property> 

的Hibernate 3.2及以下

<property name="hibernate.cache.region.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property> 

希望這將幫助你!

+0

非常感謝。這是我所期待的。但現在它拋出'java.lang.ClassNotFoundException:org.hibernate.cache.EntityRegion'。很顯然'org.hibernate.cache'包中缺少'EntityRegion'類。我應該添加一些其他的jar嗎?注意:我沒有在項目中使用Maven依賴項。 – whiteErru

+0

你現在使用哪個hibernate版本?它的4.3.0對不對? –

+0

您是否在類路徑中添加了ehcache-core-2.4.4.jar文件? –

0

在你的pom中添加下面的依賴關係。

<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-core</artifactId> 
<version>4.1.9.Final</version> 
</dependency> 

<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-ehcache</artifactId> 
<version>4.1.9.Final</version> 
<exclusions> 
    <exclusion> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache-core</artifactId> 
    </exclusion> 
</exclusions> 
</dependency> 

參考此鏈接:https://dzone.com/articles/hibernate-4-and-ehcache-higher