我对Grails没有太多的经验,所以可能我不了解GORM中的hasMany和belongsTo关系。
说,我有 2 个类Parent.groovy和Child.groovy
class Parent {
String name
List childen = new ArrayList()
static hasMany = [children: Child]
}
class Child {
String name
static belongsTo = [parent: Parent]
}
Person person1 = new Person(name: "Person1")
Child child1 = new Child(name: "child1")
Child child2 = new Child(name: "child2")
person1.addToChildren(child1).save(flush: true)
person1.addToChildren(child2).save(flush: true)
Person person2 = new Person(name: "Person2").save(flush: true)
现在我想改变孩子的父母
child1.parent = parent2 // no effect
child1.save(flush: true)
在控制器中是可能的
Child child1 = Child.get(1)
bindData(child1, [parent: [id: 2]])
child1.save(flush: true)
但是现在movie1.children中有null,在DB中我可以看到parent_id已更改为2
注意:在 Active Record (Rails) 中很容易
child1.parent_id = 2
如果我想改变父母,也许我不需要使用这种关系?
也许还有另一种方法可以做到这一点?