如何在自定义Grails验证器中引用另一个属性?

如何在自定义Grails验证器中引用另一个属性?,grails,groovy,gorm,Grails,Groovy,Gorm,根据另一个变量的状态,我有一个可以为null或必需的属性 class Person{ name() civilStatus(inList:['Single','Married','Divorced','Widowed']) partnerOrSpouse() } PartnersPouse属性是否可为空取决于civilStatus属性的值。您可以使用自定义验证器。使用双参数版本,第一个是正在验证的值,第二个是域类实例。您可以通过“obj”参数引用其他属性: class Person {

根据另一个变量的状态,我有一个可以为null或必需的属性

class Person{
name()
civilStatus(inList:['Single','Married','Divorced','Widowed'])
partnerOrSpouse()
}

PartnersPouse属性是否可为空取决于civilStatus属性的值。

您可以使用自定义验证器。使用双参数版本,第一个是正在验证的值,第二个是域类实例。您可以通过“obj”参数引用其他属性:

class Person {
   ...
   static constraints = {
      name()
      civilStatus inList:['Single','Married','Divorced','Widowed']
      partnerOrSpouse validator: { val, obj ->
         if (obj.civilStatus == 'Single') {
            return 'some.error.code'
         }
      }
   }
}