簡體   English   中英

如何對grails上的域字段應用新驗證

[英]How to apply new validation for a domain field on grails

我有這個域名:

class Foo {
  static hasMany=[
    bars: Bar
  ]

  String name

  static constraints = {
    name(blank: false, unique: true)
  }
}

在向數據庫插入值后,我添加了另一個條形驗證

bars(nullable: false, validator: {value, object ->
            if(value.isEmpty()){
               return['bars.empty.validation.error']
            }
        })

現在,當我嘗試更新保存沒有條形保存的Foo實例時,在字段bars上抱怨:

Field error in object 'Foo' on field 'bars': rejected value [[Bar : (unsaved)]]

我的問題是如何更新沒有bars Foo實例

您可以將自定義驗證更改為僅應用於沒有與其關聯的id實例(表示它們正在插入且未更新)。 比如這樣:

bars(nullable: false, validator: {value, object ->
  if (object?.id) return // don't apply to previously saved instance.
  if(value.isEmpty()){
    return['bars.empty.validation.error']
  }
})

暫無
暫無

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

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