【问题标题】:Grails 2.5 to Grails 3.2 GORM 6Grails 2.5 到 Grails 3.2 GORM 6
【发布时间】:2018-01-18 16:55:29
【问题描述】:

Hibernate 的GORM 6.1.8.RELEASE 是否需要对域类进行任何更改?

域映射中的joinTable 是最近添加到GORM 的吗?

我将我的域类从一个正常工作的 Grails 2.5.1 项目复制到一个 Grails 3.2 项目。当我使用"dbCreate: 'validate'" 启动骨架应用程序时,出现以下错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: 创建定义名称为“methodValidationPostProcessor”的 bean 时出错 在类路径资源中 [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: 通过方法表达的不满足的依赖关系 'methodValidationPostProcessor' 参数 0;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“hibernateDatastoreServiceRegistry”的bean:不能 在设置时解析对 bean 'hibernateDatastore' 的引用 构造函数参数;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“hibernateDatastore”的bean:通过bean实例化 构造函数失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化 [org.grails.orm.hibernate.HibernateDatastore]:构造函数 抛出异常;嵌套异常是 org.hibernate.MappingException: 外键 (FK56o1sv2813gshwyyok919a6gp:library_document_attachments [])) 必须与引用的主键具有相同的列数 (library_document [id])

我在关联中没有复合键或任何自定义映射。

class LibraryDocument extends Trackable {

// Attributes
...

// Relationships
Attachment latestVersion
static belongsTo = [...]

SortedSet attachments
static hasMany = [attachments: Attachment]
...
}

项目版本信息:

grailsVersion=3.3.2
gormVersion=6.1.8.RELEASE
gradleWrapperVersion=3.5

【问题讨论】:

  • @JeffScottBrown 是否有任何关于从 Grails 2.5 升级到 Grails 3.2 的文档?我会对迁移域类时要寻找的内容非常感兴趣。
  • 您可以参考这个stackoverflow.com/questions/53514129/… 看看是否有帮助。

标签: hibernate grails grails-orm


【解决方案1】:

用于 Hibernate 的 GORM 6.1.8.RELEASE 是否需要对域进行任何更改 上课?

答案将取决于您的应用程序中的许多因素。有很多领域类不需要更改。

域映射中的 joinTable 是 GORM 的最新成员吗?

没有。我们在大约 10 年前添加了它,它包含在 1.0.0 中。 https://github.com/grails/grails-core/commit/de590be6452715a119931d26bcc50c6a72e96170

【讨论】:

  • 是否有关于从 Grails 2.x 升级到 3.x 时域类需要进行哪些更改的文档?
  • “是否有任何文档说明从 Grails 2.x 升级到 3.x 时域类需要进行哪些更改?” - 不。没有办法知道你在域类中可能有什么代码。我们记录了框架中已更改的特定内容,但这不是升级时所需更改的列表。如果创建这样的列表是可行的,我们只需编写一个脚本来进行升级。使用方法是了解您使用的版本是如何工作的,并使您的代码与之兼容。对于域,这通常是微不足道的。
  • 如果您可以提供一个演示 3.3.2 问题的示例应用程序,则可能只需要几分钟即可确定问题。
猜你喜欢
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 2013-11-13
相关资源
最近更新 更多