【发布时间】:2016-07-08 20:08:48
【问题描述】:
我正在使用 grails 3.1.4 运行,并且无法创建允许我将多个域对象绑定到其他几个域对象的模式。作为我正在尝试做的一个例子:
我有三门课。书籍、作者和阅读列表。
作者本可以写很多书。书籍可以由多个作者撰写。此外,阅读列表由几本书组成,书籍可以是多个阅读列表的一部分。我应该如何为此创建域?
我尝试将它们设置如下:
class Author {
Long id
String firstName
String lastName
static hasMany = [books: Book]
}
class ReadingList {
Long id
String name
static hasMany = [books: Book]
}
class Book {
Long id
String title
Integer pageCount
static belongsTo = [author: Author, readingList: ReadingList]
static hasMany = [authors: Author, readingLists: ReadingList]
}
编译时出现以下错误:
No owner defined between domain classes
[class firstapp.ReadingList] and [class firstapp.Book] in a many-to-many relationship.
我尝试将我的 belongsTo 值更改为与 hasMany 完全相同,映射键是复数动词,但这似乎也不起作用。关于我如何做到这一点的任何想法?
谢谢
【问题讨论】:
-
你能有第四个类来桥接所有的 ID 吗?这将有自己的唯一 ID,然后是三个表键中的每一个的列。您将使用 ID 的每个唯一组合来填充它。
标签: grails many-to-many domain-object