2013-08-28 139 views
3

因此,大家似乎都将Hibernate的hibernate-memcached实现(https://code.google.com/p/hibernate-memcached/wiki)用作第二层Memcached缓存。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).

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

回答

1

我知道这篇文章是旧的,但我认为,应该回答。

不幸的是,当前的hibernate-memcached版本1.4-SNAPSHOT只支持hibernate max版本3.6.6 如果你想使用的是Hibernate 4,你应该将它分叉到github上并由你自己修改。

最新的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>