Grails:调试save()或validate()
我对Grails有些陌生。当我创建或更新域对象并在对象上激发save或validate时,如果方法失败,系统似乎不会抛出异常。我看不出有什么办法来检查到底是什么失败了 一个典型的片段:Grails:调试save()或validate(),grails,Grails,我对Grails有些陌生。当我创建或更新域对象并在对象上激发save或validate时,如果方法失败,系统似乎不会抛出异常。我看不出有什么办法来检查到底是什么失败了 一个典型的片段: if (domainInstance.validate()) { flash.message = "Succesfully updated domain object" } else { flash.message = "Failed to update domain object" //throw
if (domainInstance.validate()) {
flash.message = "Succesfully updated domain object"
} else {
flash.message = "Failed to update domain object"
//throw new RuntimeException("Invalid broker")
log.error "Failed to update domain object"
}
在我的情况下,验证失败了,我不知道为什么。
有人能解释一下吗
如果放入try/catch,则不会引发异常。mydomain.validate仅用于验证对象。您可以使用mydomain.hasErrors加载errors对象,并打印以下语句的错误
if(mydomain.hasErrors()){
mydomain.errors.allErrors.each{println it}
}
通常我更喜欢保存和更新任何对象的方式是
if(mydomain.hasErrors() || !mydomain.save(failOnError:true){
//action to be taken if domain validation fails.
}
通过设置failOnError:true,如果保存失败,将抛出需要在控制器中捕获的验证异常 mydomain.validate仅用于验证对象。您可以使用mydomain.hasErrors加载errors对象,并打印以下语句的错误
if(mydomain.hasErrors()){
mydomain.errors.allErrors.each{println it}
}
通常我更喜欢保存和更新任何对象的方式是
if(mydomain.hasErrors() || !mydomain.save(failOnError:true){
//action to be taken if domain validation fails.
}
通过设置failOnError:true,如果保存失败,将抛出需要在控制器中捕获的验证异常 您还可以在grails配置文件中为整个应用程序设置failOnError=true
grails.gorm.failOnError=true
GORM您还可以在grails配置文件中为整个应用程序设置failOnError=true
grails.gorm.failOnError=true
GORM请在代码块中格式化代码。文本字段上方是101/010图标。请在代码块中格式化您的代码。它是文本字段上方的101/010图标。