在Grails中添加新的子实例

时间:2015-11-16 12:50:04

标签: grails

最好的做法是在grails中添加另一个child实例?

如果我有这个域名

class Parent {
   String name
   static hasMany = [children: Child]
}

class Child {
    String name
    static belongsTo = [parent: Parent]
}

如果我想创建一个新的孩子,我是否手动获取父母的ID并将其存储到子实例?

2 个答案:

答案 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()