Grails域验证器

时间:2012-10-09 20:35:57

标签: grails gorm

我在域类中为属性添加了自定义验证器。但每当我运行单元测试并运行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}"
    }
}

1 个答案:

答案 0 :(得分:3)

在自定义验证器中访问对象属性与仅引用属性略有不同。验证器闭包需要一个或两个参数,1)当前属性的值和2)对象本身,如果您需要访问对象的其余部分。

validator: { val -> val > 0 }