在一个类上实现与另一个类的两种不同类型的关系时,我遇到了一些问题。
举个例子,想象一位作者有一份书面书籍 list ,然后是他最喜欢的一本。
从 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() 方法在所有实例上都被正确调用)
您知道实现所需行为的正确方法是什么吗?
最佳答案
试试“hasOne”。它将 FK 存储在子表中,并可以帮助您解决循环依赖问题
关于Grails:GORM 多对多和一对多关系映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932687/