EHCache,hibernate兵马俑版本

时间:2013-01-24 15:09:21

标签: hibernate ehcache terracotta

我有一个运行Hibernate 4.1.7的应用程序,并使用ehcache作为二级缓存。据我所知,从Hibernate 4开始,我需要使用与hibernate捆绑在一起的ehcache jar,但这些jar都很老了。

当前最新版本的ehcache是​​2.6.3,但hibernate 4.1.7附带的版本是2.4.3。问题是hibernate没有与ehcache-terracotta jar捆绑在一起,我的terracotta服务器捆绑了ehcache-hibernate 2.6.2 jar,因为它是赤土陶器的最新工作版本。我很难让我的应用程序连接到我的兵马俑服务器,并认为这是因为我的版本不匹配。

如何使用hibernate(版本2.4.3)使用的ehcache连接我的terraotta服务器,该服务器适用于ehcache 2.6.2版本?

请帮忙

1 个答案:

答案 0 :(得分:1)

如果您使用Hibernate JPA实现,则应在persistence.xml中提供以下属性:

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

然后你的类路径中应该有以下jar(对于terracotta ver.3.6.5 - 与JDK5兼容的最后一个版本):

  • ehcache的核-EE-2.5.6.jar
  • ehcache的-赤土EE-2.5.6.jar
  • 赤土工具箱-1.5-运行时-EE-4.5.0.jar

此外,您必须确保类路径中没有任何其他ehcache jar。

如果你使用maven,那么:

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core-ee</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-terracotta-ee</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>org.terracotta</groupId>
    <artifactId>terracotta-toolkit-1.5-runtime-ee</artifactId>
    <version>4.5.0</version>
</dependency>

另外不要忘记指向赤土陶器的maven存储库来下载所需的罐子:

<repository>
    <id>terracotta-repository</id>
    <url>http://www.terracotta.org/download/reflector/releases</url>
    <releases>
        <enabled>true</enabled>
    </releases>
</repository>