3

我正在使用 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 完全相同,映射键是复数动词,但这似乎也不起作用。关于我如何做到这一点的任何想法?

谢谢

4

1 回答 1

0

坦率地说,我不明白原因,但这个定义Book应该有效,

class Book {
    Long id
    String title
    Integer pageCount
    static belongsTo = [Author, ReadingList]
    static hasMany = [authors: Author, readingLists: ReadingList]
}

但没有反向引用

于 2016-03-23T07:53:57.460 回答