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

标签 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

根据 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();

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

最佳答案

使用 Hibernate 4 时,您必须使用 org.hibernate 打包类。 net.sf.ehcache 是针对 Hibernate 3 的。

他们已经将 Form 4 直接移植到 Hibernate 存储库中的 4(我们认为这是最明智的做法)。

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

关于java - 带 ehcache 的 Hibernate 4 是否需要 ehcache-core 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15970019/

相关文章:

java - hibernate 什么都不选择

java - 通过嵌套列表对象中的多个值查找对象 Hibernate、Jpa

java - 具有递归回溯的动态树构建

Java 线程错误 IllegalThreadState 线程已经启动

hibernate - grails/hibernate标准如何获取至少有一个 child 满足条件的所有行

java - 在使用 Ehcache 刷新只读缓存之前,我需要锁定它吗?

java - 使用 Ehcache 扩展 Java Web 应用程序

Java headless 异常?

Java Quicksort(数组值在重新分配时不改变值)

java - Ehcache 与 DB 持久化设计