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