我在使用正确的grails中获得一对多关系时遇到了一些问题。 我有个人实例,这个人与其他人有关系。此关系在关系对象中定义。 相关代码如下。
class Person {
static hasMany = [relationships:Relationship]
String name
}
class Relationship {
Person relationShipTo
// Enum containing married, living together, parent etc.
RelationshipType typeOfRelationship
}
现在我想要的是一对多引用该关系的持久化但是grails中发生的事情是它似乎认为relationShipTo实例正在引用与其他人有这种关系的Person,而不是另一个人。 因此,一个人可以引用一种关系,并且该关系具有与您有关系的人的类型和引用。 我无法为此更改域模型。有没有办法完成我想要的东西?
如果我使用为关系生成的视图和控制器并尝试创建与其引用的类型和人员的关系,目前正在发生什么,只有类型被持久化并且人被忽略。当我尝试将其添加到人员编辑或创建页面中的人员时,我添加的关系的所有relationShipTo属性都将与该人员的ID一起保存。
希望我写的内容是可以理解的。
答案 0 :(得分:0)
终于搞定了。
必须向person添加静态mappedBy = [relationship:'belongsTo'] 和一个静态belongsTo = [belongsTo:Person]。
不完全是我想要的但是它有效且是妥协