[英]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.