【问题标题】:Grails: GORM Many-to-Many and One-To-Many relationship MappingGrails:GORM 多对多和一对多关系映射
【发布时间】:2011-02-08 11:55:21
【问题描述】:

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

举个例子,假设一位作者有一份成书清单,然后是他最喜欢的一本。

从 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() 方法在所有实例上都被正确调用)

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

【问题讨论】:

  • 我刚刚在 grails 1.3.6 中测试了您的确切代码,没有遇到任何问题。
  • 你应该给出你尝试保存对象的代码。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

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