3

所以每个人似乎都在使用Hibernate 的hibernate-memcached实现(https://code.google.com/p/hibernate-memcached/wiki)作为第二层 Memcached 缓存。

我尝试将它与 Hibernate 集成,但我发现它已经过时了。例如,它依赖于旧版本的org.slfjorg.hibernate二进制文件(这会破坏我的 Web 服务,因为我使用的是较新的二进制文件)。但即使在使用 Maven 构建时排除这些二进制文件,它似乎也缺少必要的设置实现,因为hibernate.cache.region.factory_class它可能是随着 Hibernate 的新缓存策略引入的。

简而言之,我遇到了上述错误:

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).

我的猜测是我需要编写自己的实现?我只是不知道还有多少破碎的步骤。

4

2 回答 2

1

我知道这篇文章很旧,但我认为,无论如何都应该回答。

不幸的是,当前的 hibernate-memcached 版本 1.4-SNAPSHOT 仅支持 hibernate max 版本 3.6.6 如果要与 Hibernate 4 一起使用,则应在 github 上 fork 并自行修改。

最新的 hibernate-memcached 版本在https://github.com/raykrueger/hibernate-memcached

如果你使用 maven,这里是 pom.xml 的片段

<repositories>
  <repository>
    <id>hibernate-memcached</id>
    <name>hibernate-memcached</name>
    <url>http://raykrueger.googlecode.com/svn/repository</url>
  </repository>
</repositories>


<dependency>
  <groupId>com.googlecode</groupId>
  <artifactId>hibernate-memcached</artifactId>
   <version>1.4-SNAPSHOT</version>
</dependency>
于 2014-02-20T05:19:38.760 回答
0

有同样的问题,最终或多或少地做了谢尔盖在他的回答中描述的事情。如果其他人正在寻找此问题的答案,您可以尝试一下https://github.com/mihaicostin/hibernate-l2-memcached

于 2015-10-19T18:50:53.573 回答