5

参照ドキュメントには、サイズの制約について次のように書かれています。

Groovy 範囲を使用して、コレクションまたは数値のサイズ、または文字列の長さを制限します。

整数にサイズ制限を設定すると、警告が表示されます

ドメイン クラス TheClass のプロパティ [prop] の型は [java.lang.Integer] で、制約 [size] をサポートしていません。この制約は検証中にチェックされません。

ドキュメントが間違っていますか?

範囲を使用できることはわかっていますが、実際の値ではなく数字の桁数を指定できる方が一般的には簡単です (社会保障番号には範囲を設定するよりも、7 桁またはそれが何であれ必要があるように)。 1000000 ~ 9999999)。

4

4 に答える 4

2

JIRA を検索しているときに答えが見つかりました: http://jira.codehaus.org/browse/GRAILS-947。ドキュメントが間違っています。

この機能はそれぞれ最小、最大、および範囲の制約に基づいているため、数値フィールドの minSize、maxSize、およびサイズの制約はもう必要ありません。そのため、これらの制約 (数値フィールドのみ) を 0.5 で非推奨としてマークし、0.6 で削除します。

カスタムバリデータ次第のようです。

于 2009-08-21T08:45:48.437 に答える
2

桁数が必要な場合は、それが正で、特定の長さであることを確認してください。

myInteger( validator: {
   return it > 0 &&  (it.toString.length) == 7
})
于 2009-08-20T20:25:16.450 に答える
1

myIntProp(max:9999999) のように max を使用して整数を制約することもできます。

于 2009-08-21T00:29:45.967 に答える
0

Jiraリンクで指摘したように、これに対する正しい答えは、整数の範囲制約を使用することだと思います。

sizeこれは に置き換えるだけで簡単だと思いますrange

于 2013-06-12T22:41:48.410 に答える