Validation 我可以有选择地关闭约束吗?
我有一个从UI更新的域类。强制要求用户填写所有必需的信息,并且一切正常,这是一些限制 然而,我也有一些更新域的quartz作业,它们不一定需要遵守所有这些约束。我想忽略一些特定的,这样Validation 我可以有选择地关闭约束吗?,validation,grails,Validation,Grails,我有一个从UI更新的域类。强制要求用户填写所有必需的信息,并且一切正常,这是一些限制 然而,我也有一些更新域的quartz作业,它们不一定需要遵守所有这些约束。我想忽略一些特定的,这样save()就可以工作了 我可以考虑以下几种方法: 使用save(validate:false)但这样会忽略所有约束(不是我想要的) 删除仅适用于UI的约束,并手动检查数据在控制器中是否有效 将这些约束包装到验证器中,只有当瞬态属性的值为saveFromUI(在save()之前从控制器设置此瞬态属性)时,验证器才
save()
就可以工作了
我可以考虑以下几种方法:
- 使用
但这样会忽略所有约束(不是我想要的)save(validate:false)
- 删除仅适用于UI的约束,并手动检查数据在控制器中是否有效
- 将这些约束包装到验证器中,只有当瞬态属性的值为
(在saveFromUI
save()之前从控制器设置此瞬态属性)时,验证器才会生效
这些似乎都是黑客。还有其他更好的方法吗?
几乎听起来好像你需要考虑使用一个命令对象。
但是,您始终可以指定更新时要验证的属性。比如说:myDomainInstance.validate(['prop1', 'prop2'])
...
myDomainInstance.save(validate: false) // since you already have done so manually prior to this.
该文档包含有关的更多信息