0

我在使 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 一起保存。

希望我写的可以理解。

4

1 回答 1

0

终于让它工作了。

必须添加一个静态 mappedBy =[relationship: 'belongsTo'] 到 person 和一个静态 belongsTo = [belongsTo: Person]。

不完全是我想要的,但它有效,是一个不错的妥协

于 2013-02-20T13:32:48.003 回答