Grails-一对一关联异常

Grails-一对一关联异常,grails,gorm,Grails,Gorm,我在验证域类时遇到问题。我有两个通过一对一关系关联的域: class AssemblyForm { Measures measures static hasOne = [measures: Measures] } class Measures { AssemblyForm assemblyForm } 现在我正在控制器和服务中绑定和创建它们: // controller class AssemblyFormController { def save() {

我在验证域类时遇到问题。我有两个通过一对一关系关联的域:

class AssemblyForm {
    Measures measures
    static hasOne = [measures: Measures]
}

class Measures {
    AssemblyForm assemblyForm
}
现在我正在控制器和服务中绑定和创建它们:

// controller
class AssemblyFormController {
    def save() {
        AssemblyForm assemblyFormInstance = new AssemblyForm()
        assemblyFormInstance.measures = measures
        assemblyFormService.save(assemblyFormInstance)
    }
}

// service
class AssemblyFormService {

    public AssemblyForm save(AssemblyForm assemblyForm) {
        try {
            assemblyForm.save()
        } catch (Throwable t) {
        }
        return assemblyForm
    }
}
现在我希望assemblyForm实体在其关联发生错误时不会保存在数据库中。但事实是,当度量实体有一些错误时,AssemblyForm将持久化到数据库,而度量实体则不会。我是否做错了什么,或者这是标准行为,我应该在保存之前检查关联实体?多谢各位

问候,,
Lojza

assemblyForm.save()
在验证失败时不会引发异常。检查
save()
返回值或传递
throwOnError:true
。谢谢,你说得对。在阅读save方法时,我注意到有一个deepValidate参数,grails在保存时验证关联。但是它没有说明如果关联实体的验证失败,是否应该将主实体保存到数据库中……或者应该保存所有对象,或者不保存任何对象。对于您的代码,级联应该适用,因此如果
save()
对于
度量值
失败,那么对于
assemblyForm
也应该失败。我不知道这为什么不能像预期的那样起作用。