代码之家  ›  专栏  ›  技术社区  ›  Tom

Grails域类验证器+根据字段值设置唯一约束?

  •  3
  • Tom  · 技术社区  · 14 年前

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

    例如

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

    我对此很困惑。

    提前谢谢

    1 回复  |  直到 14 年前
        1
  •  3
  •   Rob Hruska MegalomanINA    14 年前

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