Validation Grails:正在保存对象,尽管它有错误
我在尝试验证和保存域对象时遇到问题 首先,我进行验证,当验证错误时,我将错误放在我未来要保存的对象中,如下所示:Validation Grails:正在保存对象,尽管它有错误,validation,grails,Validation,Grails,我在尝试验证和保存域对象时遇到问题 首先,我进行验证,当验证错误时,我将错误放在我未来要保存的对象中,如下所示: myDomain.errors.reject("An Error") myDomain.discard() // bind etc. ... // do grails validation if (!myDomain.validate()) { myDomain.discard() } // do custom validation if (
myDomain.errors.reject("An Error")
myDomain.discard()
// bind etc.
...
// do grails validation
if (!myDomain.validate()) {
myDomain.discard()
}
// do custom validation
if (custom validation has errors) {
myDomain.errors.reject ()
myDomain.discard()
}
然后,当我试图保存这个对象时,我可以看到错误列表有一个错误,但是“验证”返回“true”,而且,当函数完成时,对象会自动保存。
我必须说,所有被调用的函数都在同一个类中,这个类是控制器
我需要知道如何在控制器类中编写save函数,该类只显示错误而不保存对象,并且在验证良好时保存对象
谢谢 myDomain.validate将覆盖myDomain.errors清除拒绝。你可以这样做:
myDomain.errors.reject("An Error")
myDomain.discard()
// bind etc.
...
// do grails validation
if (!myDomain.validate()) {
myDomain.discard()
}
// do custom validation
if (custom validation has errors) {
myDomain.errors.reject ()
myDomain.discard()
}
如果可以将自定义验证移动到myDomain上的某个域中,则不需要自定义验证
您不需要显式调用save 修复程序将使用:
@Transactional(readOnly = true)
对于位于服务文件中的函数。
它使函数避免在最后保存事务,这是问题的根源