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

Grails domain class fields nullable validator decided by other fields

例如,我有一个名为:

的域类

1
2
3
4
5
6
7
8
class Employee {
     boolean belongToDepartment
     Department department

     static constraints = {
          department ????
     }
}

我想为部门写一个验证器,如果字段belongToDepartment为真,部门不为空,否则部门可以为空。

我不确定这是否有意义?


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

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