有没有办法编写自定义验证器,根据字段值执行不同的验证?
例如
class myModel{
A a;
B b;
String prop
static belongsTo:[m:myModel]
constraints{
prop(validator:{
val,obj->
if (obj.a== null){
unique:[b,prop]
}
else{
unique:[a,b,prop]
}
})
}
}
我对此很困惑。
提前致谢
答案 0 :(得分:3)
虽然不是最优雅的解决方案,但这应该有效:
static constraints = {
prop(validator: { val, obj ->
if(obj.a == null) {
return !myModel.findWhere(b: obj.b, prop: val)
} else {
return !myModel.findWhere(a: obj.a, b: obj.b, prop: val)
}
})
}
我不相信有一种方法可以根据属性值有条件地验证唯一性,而无需手动执行查询。