簡體   English   中英

grails域類驗證器+根據字段值設置唯一約束?

[英]grails domain class validator + set unique constraint according to field values?

有沒有辦法編寫一個自定義驗證器,根據字段值執行不同的驗證?

例如

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

我對此很困惑。

提前致謝

雖然不是最優雅的解決方案,但這應該有效:

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

我不相信有一種方法可以根據屬性值有條件地驗證唯一性,而無需手動執行查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM