我有一个可以为空或可取的属性,具体取决于另一个变量的状态。
class Person{
name()
civilStatus(inList:['Single','Married','Divorced','Widowed'])
partnerOrSpouse()
}
partnerOrSpouse属性可以为空或取决于civilStatus属性的值。
答案 0 :(得分:2)
您可以使用自定义验证程序。使用双参数版本,第一个是要验证的值,第二个是域类实例。您可以通过'obj'参数引用其他属性:
class Person {
...
static constraints = {
name()
civilStatus inList:['Single','Married','Divorced','Widowed']
partnerOrSpouse validator: { val, obj ->
if (obj.civilStatus == 'Single') {
return 'some.error.code'
}
}
}
}