【问题标题】:grails domain class validator + set unique constraint according to field values?grails域类验证器+根据字段值设置唯一约束?
【发布时间】:2010-09-16 15:29:11
【问题描述】:

有没有办法编写一个自定义验证器,根据字段值执行不同的验证?

例如

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]
                }
        })
   }
}

我对此感到很困惑。

提前致谢

【问题讨论】:

标签: grails model constraints validation grails-orm


【解决方案1】:

虽然不是最优雅的解决方案,但这应该可行:

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)
        }
    })
}

我不相信有一种方法可以在不手动执行查询的情况下根据属性值有条件地验证唯一性。

【讨论】:

  • 好答案。此外,唯一性等验证对应于模式生成,因此尝试对它们应用条件是不可能的 AFAIK。
猜你喜欢
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多