【发布时间】:2018-10-02 06:17:19
【问题描述】:
从 grails 2 到 grails3 的行为似乎发生了变化。当我创建一对多的关系时,例如
class Author {
static hasMany = [books: Book]
String name
}
class Book {
String title
}
它将创建一个包含 author_books_id 和 book_id 列的连接表。在 grails 3 中,它还在第一列上添加了一个非空约束。在 grails 2 中,不应用非空约束。因此,当我升级到 grails 3 时,它会中断,因为已经很少有记录的第一列值为空。它在 grails 2 中运行良好,但在 grails 3 中,第一列不应为空。此外,连接表是只读的,因此我无法删除行将使第一列值变为空。有没有办法通过在域中而不是直接在迁移文件中进行更改来使第一列可以为 null = true。
代码是从 grails 文档中提取的。请向下滚动到一对多部分。
6.2.1.2 一对多
【问题讨论】:
-
我不知道为什么连接表中存在一行不将 2 个东西连接在一起的行...连接表中一侧为空的行似乎没用,应该是删除。也就是说......您不必让 grails 创建您的表,并且您可以在创建这些表后对其进行修改,如果您需要删除该约束,您可以。