对未映射到表的域对象的Grails级联验证

时间:2012-10-12 09:40:40

标签: validation grails cascade

请帮助我解决以下问题:

我有2个域类(Parent,Child),我不想将它映射到表,所以我放了mapWith=none。但是,当我parent.validate()时,我希望将验证级联到孩子身上。如何为未映射到表的域对象启用级联验证?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

不知道你是否可以通过设计。

您可以选择在父对象上添加customValidation()方法以启动检查,该检查循环遍历子项并调用其validate()方法。然后可以将子项上的任何错误添加到父对象的errors对象中。

boolean cascadedValidation() {
    this.validate();

    children.each {
        if (!it.validate()) {
           it.errors.allErrors.each { err ->
               // Bind somewhere on parent object
           }
        }
    }

    return this.hasErrors();
}