首页 > 解决方案 > Grails:向父域对象添加多个子元素的痛苦

问题描述

我对 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)

如果不使用循环,我无法找到一种方法来做到这一点。我相信我在这里遗漏了一些东西。

标签: hibernatejpagrailsormgrails-orm

解决方案


尝试这个:children.each { parent.addToChildren(it) }

addTo仅接受单个实例,而不是列表。所以迭代列表并添加单个实例。


推荐阅读