我运行的是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完全相同,映射键是复数动词,但这似乎也不起作用。有没有想过我该如何做到这一点?
感谢
坦率地说,我不明白原因,但Book
的这个定义应该有效,
class Book {
Long id
String title
Integer pageCount
static belongsTo = [Author, ReadingList]
static hasMany = [authors: Author, readingLists: ReadingList]
}
但没有反向引用