有一个域类人,其中一个字段具有约束
AnnualIncome(blank:true, nullable:true,range: 100000..100000000).
如果用户不想填写此字段,则此字段的默认值为0,然后会出现grails默认异常,表示AnnualIncome
的值不在100000以下100000000。
但是当用户填充AnnualIncome
字段然后应用范围约束时,会使用此约束。但是如何管理此状态,以便在用户希望填充此详细信息时检查约束,如果他没有想填补它,不应该提出任何例外吗?
答案 0 :(得分:0)
您可以在范围字段中使用custom validator作为用例:
在验证器闭包中,您可以有条件地应用约束。
在验证器关闭中,您可以检查
if(AnnualIncome ==0){
//do somthing
}else{
// apply constraint here.
}
答案 1 :(得分:0)
在您允许null
时,将值设置为null
而不是0
。这使得更容易区分值不集或输入的实际0
(在未来的某个时候可能会发生变化,例如因为您允许NPO注册)。
否则你应该删除范围检查。如果它与存储数据无关,则应在域模型级别处理(GORM对象不是域模型)。