2013-02-20 39 views
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一起保存。

希望我写的是可以理解的。

回答

0

终于搞定了。

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

不完全是我怎么想它,但它的工作原理,是一个确定的妥协

+0

能否请您加入到这个回答与你所做的更改代码? :) – lucke84 2013-02-20 14:44:17

相关问题