0
我有一个自引用域类是这样的:Grails的自参考域类令人吃惊的保存结果
class Person {
String name
Person father
Person mother
}
我没有任何的hasMany或父亲或母亲的其他约束
我有插入服务从.csv文件的新条目如下
Person father = Person.findBy(newPersonFatherName)
Person mother = Person.findBy(newPersonMotherName)
Person newPerson = new Person(
name: newPersonName,
father: father,
mother: mother)
newPerson.save()
什么,这是执行时出现的情况是外婆和祖父都设置为相同的实例作为NE wPerson。
我可以让这个消失在保存之前,下面两行插入()
Person pgf = father.father
Person pgm = father.mother
Person mgf = mother.father
Person mgm = mother.mother
我想整个事情是主题相关的级联可以节省,但我无法真正了解问题,而且我不愿意在代码中留下这样一个难以理解的解决方案。
谁能帮助?提前致谢!
不知道'findBy'自己做了什么,不应该是'findByName'吗?此外,名称不是很独特,过了一会'findByName'不会找到正确的结果,因为它找到了第一个匹配结果 –
嗨迈克,感谢您的意见。简而言之,上面是我真正有的地方摆脱了不相关属性等的简化版本。然后,在这种情况下,在这个例子中,'findBy'应该是'findByName',因为您声明(我使用findBy和其他属性真实的东西;你可以在Grails文档中找到它的例子)。至于独特性,你的观点是正确的,在真实情况下,我也使用其他属性,在'findBy'中。但最终,我提到的行为,即祖父母以某种方式不正确地更新了原始代码。 – MonetsChemist
最好的办法是创建一个示例项目并将其链接到这里 –