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

时间:2010-05-13 04:04:27

标签: grails groovy gorm

我有一个可以为空或可取的属性,具体取决于另一个变量的状态。

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

partnerOrSpouse属性可以为空或取决于civilStatus属性的值。

1 个答案:

答案 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'
         }
      }
   }
}