带有ehcache的Hibernate 4是否需要ehcache-core库?

Joh*_*ton 9 java hibernate ehcache

我正在尝试将应用程序从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
Run Code Online (Sandbox Code Playgroud)

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

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

// For example, this no-longer works
CacheManager manager = CacheManager.getInstance();
Run Code Online (Sandbox Code Playgroud)

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

Ram*_*tha 20

使用Hibernate 4时,必须使用org.hibernate打包的类.该net.sf.ehcache的有目标在休眠3.

表格4他们直接在Hibernate回购中移植到4(这是我们认为最明智的事情).

因此,使用org.hibernate.cache.ehcache.EhCacheRegionFactory可以解决您的问题.