0

我有这些域:

    class ChildPlacementFile{
    .....
    static hasMany = [children : Client]
    static belongsTo  = [father : Client, mother: Client]
    Client child
    ...other fields etc.
    }

class Client{
String firstName
String lastName
....etc etc.
}

我的客户要求我允许在表单中进行多次保存。所以我创建了一个看起来像这样的服务。

def saveChildren(ChildPlacementFile childPlacementFileInstance, params){
    def childrenList = []
    def errorList = []

    params.rowId = [params.rowId].flatten()
    params.child = [params.child].flatten()

    params.rowId.eachWithIndex {child, i ->
        Client childInstance = Client.get(params.child[i])

        if(childInstance){
            childrenList.add(childInstance)
            childPlacementFileInstance?.addToChildren(childInstance).save()
                    }else{
            errorList.add(childInstance)
        }
    }

    [errors: errorList, children:childrenList]

}

当我尝试在控制器上检查时,孩子似乎保存在 save() 方法 [childPlacementFileInstance.?children] 上,但是当它重定向到 show() 方法时,[childPlacementFileInstance.?children] 没有不再出现,它是空的。为什么??O_O

没有错误,没有例外。所以我预计它会起作用,但它没有。:(

4

1 回答 1

0

我的猜测是 save 方法在某些约束下失败。调用 save check 后检查childPlacementFileInstance.hasErrors()。如果您不想显式抛出异常,请使用参数调用方法childPlacementFileInstance.save(failOnError: true)

于 2012-11-12T16:43:46.207 回答