最好的做法是在grails中添加另一个child实例?
如果我有这个域名
class Parent {
String name
static hasMany = [children: Child]
}
class Child {
String name
static belongsTo = [parent: Parent]
}
如果我想创建一个新的孩子,我是否手动获取父母的ID并将其存储到子实例?
答案 0 :(得分:1)
试试这个:
Parent parent = Parent.get(parentId)
Child child = new Child(
parent: parent,
name: 'name'
)
child.save()
parent.addToChildren(child)
parent.save()
...或
Parent parent = Parent.get(parentId)
Child child = new Child()
child.name = 'name'
child.parent = parent
child.save()
parent.addToChildren(child)
parent.save()
答案 1 :(得分:0)
rcgeorge的代码有效,但在使用addTo方法之前不需要保存子代,因为它将通过级联保存。所以...
Parent parent = Parent.get(parentId)
Child child = new Child(
parent: parent,
name: 'name'
)
parent.addToChildren(child)
parent.save()