我在grails 3.1.4上运行,无法创建允许我将多个域对象绑定(bind)到其他几个域对象的架构。作为我正在尝试做的一个例子:

我有三节课。书籍,作者和阅读 list 。

作者本可以写很多书。书籍可以由多位作者撰写。另外,ReadingLists由几本书组成,并且书籍可以是多个readingLists的一部分。我应该如何为此建立域名?

我尝试将它们设置如下:

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]
}

但是没有回引用

08-28 13:36