我在域类中为属性添加了自定义验证器。但每当我运行单元测试并运行validate()方法时,我会收到一条错误消息,指出该类中无法识别该属性。当我删除自定义验证器时,一切正常。
谢谢你的帮助!
class Region {
int identifier
BigDecimal leftUpLatitude
BigDecimal leftUpLongitude
BigDecimal rigthDownLatitude
BigDecimal rigthDownLongitude
static constraints = {
identifier unique:true, validator: {return identifier > 0}
leftUpLatitude min:-90.00, max:90.00
leftUpLongitude min:-180.00, max:180.00
rigthDownLatitude min:-90.00, max:90.00
rigthDownLongitude min:-180.00, max:180.00
}
boolean isValidRegion(){
if ((leftUpLatitude > rigthDownLatitude) && ( leftUpLongitude < rigthDownLongitude))
return true
else
return false
}
String toString(){
return "${identifier}"
}
}
答案 0 :(得分:3)
在自定义验证器中访问对象属性与仅引用属性略有不同。验证器闭包需要一个或两个参数,1)当前属性的值和2)对象本身,如果您需要访问对象的其余部分。
validator: { val -> val > 0 }