【问题标题】:One-to-many relationship not working as expected一对多关系没有按预期工作
【发布时间】:2013-02-20 21:32:48
【问题描述】:

我在使 grails 中的一对多关系正常工作时遇到了一些问题。 我有一个人实例,这个人与其他人有关系。此关系在关系对象中定义。 相关代码如下。

class Person {
  static hasMany = [relationships:Relationship]
  String name

}

class Relationship {
   Person relationShipTo

   // Enum containing married, living together, parent etc.
   RelationshipType typeOfRelationship
}

现在我想要的是一个一对多的引用来保持这种关系,但在 grails 中发生的事情是它似乎认为relationshipTo 实例正在引用与其他人有这种关系的人,而不是另一个人。 所以一个人有一个关系的引用,而那个关系有一个类型和一个对你与之有关系的人的引用。 我无法为此更改域模型。有什么方法可以实现我想要的吗?

如果我为关系使用生成的视图和控制器并尝试创建与类型和它所引用的人的关系,则当前发生的情况是,只有类型被持久化而人被忽略。然后,当我尝试将其添加到人员编辑或创建页面中的人员时,我添加的关系的所有 relationShipTo 属性都与人员的 ID 一起保存。

希望我写的可以理解。

【问题讨论】:

    标签: grails


    【解决方案1】:

    终于搞定了。

    必须向人员添加静态 mappedBy =[relationship: 'belongsTo'] 和一个静态的 belongsTo = [belongsTo: Person]。

    不完全是我想要的,但它可以工作并且是一个不错的妥协

    【讨论】:

    • 您能否在此答案中添加您所做更改的代码? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2018-12-28
    相关资源
    最近更新 更多