如何对 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']
}
})
我有这个域名:
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']
}
})