假设我有以下Foo
对象:
Foo foo = new Foo(foo: "foo", bar: "bar", baz: "baz")
我知道如何验证特定的约束:
foo.validate(["foo", "bar"]) // validates the "foo" property and the "bar" property, but not the "baz" property
我也知道如何一起放弃验证:
foo.save(validate: false)
但我不知道如何告诉 Grails 验证除列表中的约束之外的所有约束。我可以创建一种方法来做我想做的事,但我想确保首先没有 Groovy 方法来做它。
更新
如果没有“groovier”方式,这就是我将如何做到这一点。
// This method exists in my Util.groovy class in my src/groovy folder
static def validateWithBlacklistAndSave(def obj, def blacklist = null) {
def propertiesToValidate = obj.domainClass.constraints.keySet().collectMany{ !blacklist?.contains(it)? [it] : [] }
if(obj.validate(propertiesToValidate)) {
obj.save(flush: true, validate: false)
}
obj
}