我有一个运行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版本?
请帮忙
答案 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 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>