java – Hibernate 4与ehcache需要ehcache-core库吗?

我试图将Hibernate 3的应用程序升级到Hibernate 4.应用程序使用ehcache.

升级到Hibernate 4.2.0.Final我添加一个依赖于hibernate-ehcache-4.2.0.Final的建议.

当我启动应用程序时,我收到以下错误

Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/TimestampsRegion

根据http://www.javacraft.org/2012/03/migrate-to-hibernate-4-ehcache.html我应该删除对ehcache-core的依赖,并且只使用提供的hibernate来解决这个错误.

现在,如果我按照这些说明删除这个依赖关系,我的应用程序使用net.sf.ehcache.CacheManager不再编译.

// For example,this no-longer works
CacheManager manager = CacheManager.getInstance();

所以我的问题是,我可以使用这两个库,并继续像以前一样工作(不更新应用程序),或者我必须更改应用程序,在这种情况下,hibernate-ehcache甚至提供访问缓存所需的功能

解决方法

使用Hibernate 4时,必须使用org.hibernate打包的类.
net.sf.ehcache是​​Hibernate 3的目标.

形式4他们直接在Hibernate回购中移植到了4个(这在我们看来是最明智的).

所以使用org.hibernate.cache.ehcache.EhCacheRegionFactory应该可以解决你的问题.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量