Grails域类字段可为空的验证器由其他字段决定

Grails域类字段可为空的验证器由其他字段决定,grails,grails-2.0,grails-domain-class,Grails,Grails 2.0,Grails Domain Class,例如,我有一个名为: class Employee { boolean belongToDepartment Department department static constraints = { department ???? } } 我想为department编写一个验证器,如果字段belongToDepartment为true,department不为null,否则department可以为null 我不确定这是否有意义?您

例如,我有一个名为:

class Employee {
     boolean belongToDepartment
     Department department

     static constraints = {
          department ????
     }
}
我想为department编写一个验证器,如果字段belongToDepartment为true,department不为null,否则department可以为null


我不确定这是否有意义?

您可以使用部门上的自定义验证器来检查域对象上的布尔标志是否为真,部门值是否为空。在这种情况下,这是约束失败,您可以根据需要返回false或错误代码

static constraints = {
      department nullable: true, validator: {dep, obj ->
          return !(obj.belongToDepartment && !dep)
      }
 }

您可以在
部门
上使用自定义验证器来检查域对象上的布尔标志是否为true,部门值是否为null。在这种情况下,这是约束失败,您可以根据需要返回false或错误代码

static constraints = {
      department nullable: true, validator: {dep, obj ->
          return !(obj.belongToDepartment && !dep)
      }
 }