【问题标题】:Grails Domains - Multiple many to many relationshipsGrails Domains - 多个多对多关系
【发布时间】: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


【解决方案1】:

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

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

但没有反向引用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多