3

Hibernate 4.1.7を実行していて、レベル2キャッシュとしてehcacheを使用しているアプリケーションがあります。Hibernate 4の時点で、hibernateにバンドルされているehcache jarを使用する必要があることを理解していますが、これらのjarはかなり古いものです。

ehcacheの現在の最新バージョンは2.6.3ですが、Hibernate4.1.7に付属しているバージョンは2.4.3です。問題は、hibernateがehcache-terracotta jarにバンドルされておらず、私のterracottaサーバーがehcache-hibernate 2.6.2 jarにバンドルされていることです。これは、テラコッタの最新の動作バージョンであるためです。アプリケーションをテラコッタサーバーに接続するのに苦労していますが、バージョンに不一致があるためだと思います。

hibernate(バージョン2.4.3)でehcacheを使用して、ehcacheバージョン2.6.2に対応するテラコッタサーバーに接続するにはどうすればよいですか?

助けてください

4

1 に答える 1

1

Hibernate JPA 実装を使用している場合は、persistence.xml で次のプロパティを指定する必要があります。

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

次に、クラスパスに次の jar が必要です (テラコッタ バージョン 3.6.5 の場合 - JDK5 と互換性のある最後のバージョン)。

  • ehcache-core-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>

また、terracotta の maven リポジトリを指定して、必要な jar をダウンロードすることも忘れないでください。

<repository>
    <id>terracotta-repository</id>
    <url>http://www.terracotta.org/download/reflector/releases</url>
    <releases>
        <enabled>true</enabled>
    </releases>
</repository>
于 2013-03-29T13:12:51.313 に答える