Grails:将多个子元素添加到父域对象的痛苦

时间:2018-06-25 06:51:44

标签: hibernate jpa grails orm gorm

我对Grails / GORM相对较新,在此之前,我很少有冬眠的经历。

我正在尝试将子对象映射到grails中的父对象。我有多个子对象要映射。子对象已存在于数据库中。

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

class Child {
    String name
}

我尝试了以下步骤,

def parentId = <a valid parent domain id>
def parent = Parent.get(parentId)
def children = Children.getAll([list of valid children ids])

我尝试了addTo*并列出了一系列子对象,但没有成功。

parent.addToChildren(children)

它仅映射了列表中的第一个元素。

我也尝试了以下代码段,但也没有用。

parent.children += children
parent.save(flush:true)

如果不使用循环,我无法找到一种方法来执行此操作。我相信我在这里缺少什么。

1 个答案:

答案 0 :(得分:2)

尝试一下:children.each { parent.addToChildren(it) }

addTo仅接受一个实例,而不接受列表。因此,请迭代该列表并添加各个实例。