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

标签 grails many-to-many grails-orm one-to-many

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

举个例子,想象一位作者有一份书面书籍 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/

相关文章:

hibernate - org.hibernate.MappingException :Repeated column in mapping for entity User

python - SQLAlchemy 如何按多对多的 child 进行过滤

hibernate - 如何优化这个 GORM 查询

Grails:如何在域类属性上设置元约束?

grails - grails 中的 Twitter Bootstrap 事件导航栏

unit-testing - 在域类中测试服务

facebook-graph-api - Facebook Graph API帖子错误地显示了一些消息字符

Django 与额外字段的多对多关系

django - 不可散列类型 : 'list' error when trying to add m2m relationships dynamically using post_save in Django

hibernate - 不想要 ID 列