kno*_*orv 5 grails groovy metaprogramming grails-orm
使用Grails/GORM持久保存域对象时,我经常发现自己想知道为什么save()调用失败.
这可以通过添加逻辑轻松解决:
if (!o.save()) {
o.errors.allErrors.each { println it }
}
Run Code Online (Sandbox Code Playgroud)
但是,在我所做的任何地方添加.save()会添加大量重复的代码.本着DRY的精神,我想配置Grails/GORM来自动将任何保存错误打印到控制台(stderr).那可能吗?如果没有,我如何扩展GORM以使其成为可能?
解:
Object.metaClass.s = {
def o = delegate.save()
if (!o) {
delegate.errors.allErrors.each {
println it
}
}
o
}
Run Code Online (Sandbox Code Playgroud)
这会添加一个名为s()的方法,它将调用save()并打印任何错误.
| 归档时间: |
|
| 查看次数: |
6020 次 |
| 最近记录: |