Grails域 - 多对多关系

时间:2016-03-22 04:06:09

标签: grails many-to-many domain-object

我使用grails 3.1.4运行并且无法创建允许我将多个域对象绑定到其他几个域对象的架构。作为我尝试做的事情的一个例子:

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

作者可以写很多书。书籍可以由几位作者撰写。此外,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完全相同,地图键是复数动词,但这似乎也不起作用。有关如何实现这一目标的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

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

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

但没有后面引用