【发布时间】:2015-05-29 20:40:36
【问题描述】:
我在将 List 设置为与扩展类的 belongsTo 的 hasMany 关系时遇到问题。
使用新的 Grails 2.4.4 应用程序,我拥有以下 3 个域:
一个拥有许多书籍的 Author 类。
class Author {
List books
static hasMany = [books: Book]
}
扩展 Content 的 Book 类
class Book extends Content {
String foo
}
还有Content,它有很多共同的属性。
class Content {
String title
static belongsTo = [author: Author]
static constraints = {
sort: 'title'
}
}
运行此应用程序时出现以下异常:
原因:org.hibernate.MappingException:实体映射中的重复列:test.relationships.Book 列:author_id(应使用 insert="false" update="false" 进行映射)
只有当我将书籍设为列表时才会出现此异常。
【问题讨论】:
-
是否需要将
books定义为列表?我认为默认情况下它被视为hasMany表示法的列表,因此您无需将其定义为单独的变量。因此,您的“重复专栏”。只是猜测。 -
实际上默认情况下,
books是一个集合。我认为像这样指定类型是确保books集合映射为列表的正确方法。
标签: grails grails-orm