1

プロパティのドメインクラスにカスタムバリデーターを追加しました。しかし、単体テストを実行して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}"
    }
}
4

1 に答える 1

3

カスタムバリデーターでオブジェクトのプロパティにアクセスすることは、プロパティを参照することとは少し異なります。バリデータークロージャーは、1)現在のプロパティの値と2)オブジェクト自体(オブジェクトの残りの部分にアクセスする必要がある場合)の1つまたは2つのパラメーターを取ります。

validator: { val -> val > 0 }
于 2012-10-09T20:45:54.387 に答える