Grails:GORM多对多和一对多关系映射

时间:2011-02-08 11:55:22

标签: grails many-to-many gorm one-to-many

在将一个类与两个不同类型的关系实现到另一个类时,我遇到了一些问题。

作为一个例子,想象一个作者有一个书籍清单,然后是一个他最喜欢的书。

在Grails GORM参考页面中,我能够实现正确的多对多关系,如下所示:

class Author {
    static hasMany = [books: Book]
}

class Book {
    static belongsTo = Author
    static hasMany = [authors : Author]
}

这是买工作的方式。当我想将preferedBook关系添加到Author类时,问题出现了:

class Author {
    Book prefered //My prefered book
    static hasMany = [books: Book]
}

此新行似乎不起作用,启动时(创建表时)出现错误,然后通过保存对象,并非保存所有关系。 (即使在所有实例上正确调用了.save()方法)

您是否知道实现所需行为的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

尝试“hasOne”。它将FK存储在子表中,可以帮助您解决循环依赖性问题

答案 1 :(得分:0)

也许mappedBy解决了这个问题。但我不确定我是否只找到examples两个m:n关系。

答案 2 :(得分:0)

查看我的问题Domain Class relationships的答案。我相信你的问题可能会有答案。