hibernate - Grails 更新 2.3.11-> 2.4.3 ClassNotFoundException : org. hibernate.cache.access.AccessType

标签 hibernate grails grails-orm

grails 更新后我遇到以下异常:

2014-10-28 17:12:27,651 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing the application: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
    ... 4 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
    at java.lang.Class.privateGetPublicMethods(Class.java:2733)
    at java.lang.Class.getMethods(Class.java:1472)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.access.AccessType
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:175)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:147)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 7 more

Grails 版本 2.4.3 (2.4.4)、Java 1.7

构建配置:

runtime ':hibernate4:4.3.6.1'
runtime ":fixtures:1.3"

配置:

grails.hibernate.pass.readonly = false
grails.hibernate.osiv.readonly = false

在依赖关系报告中,仅包含来自 grails-plugin-databinding 和 hibernate4 插件的 Hibernate 库

有什么想法吗?

最佳答案

如果您使用 Hibernate 4,您的 DataSource.groovy 可能配置错误。在新的 2.4.x 应用程序中,您将在 hibernate 部分 中看到此内容:

//  cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4

然后您选择要使用的版本,然后在 BuildConfig.groovy 中的 v3 和 v4 之间进行选择。它们只需要保持同步,并且必须与您想要使用的 Hibernate 版本一致。

但是该类是 Hibernate 3 类,不在 Hibernate 4 中,这意味着您要么使用 Hibernate 3,要么有另一个依赖于 Hibernate 3 的插件。不幸的是,在所有流行的 Hibernate 发布之前还需要一段时间相关插件有3.x和4.x版本。

关于hibernate - Grails 更新 2.3.11-> 2.4.3 ClassNotFoundException : org. hibernate.cache.access.AccessType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613376/

相关文章:

java - 让 Hibernate 创建 TIMESTAMP 列

java - 仅从类层次结构中检索父类(super class)

grails - Grails不会节省服务

authentication - 具有Spring Security的自定义Http授权 header

grails - 配置 grails 来创建数据库(如果数据库不存在)。

java - Hibernate 类 - 从一个 View (表)读取,并写入另一个

java - Spring JPA 线程 : IllegalArgumentException Exception

java - Grails单元测试用例未初始化Grails服务

grails - 如何更改 Grails 中 BigDecimal 的精度

oracle - 如何在 Grails/GORM 中应用 NULLS LAST 排序