11.6.3.4. Hibernate Validator の制約

表11.11 同梱の制約

アノテーション 適用先 ランタイムチェック Hibernate Metadata の影響
@Length(min=, max=) プロパティ (文字列) 文字列の長さが指定の範囲とマッチしているか確認 カラムの長さを最大に設定
@Max(value=) プロパティ (数字あるいは数字の文字列表現) 値が最大値以下であるか確認 カラムに check 制約を追加
@Min(value=) プロパティ (数字あるいは数字の文字列表現) 値が最小値以上であるか確認 カラムに check 制約を追加
@NotNull プロパティ 値が null でないか確認 カラムが null でないか確認
@NotEmpty プロパティ 文字列が null あるいは空でないか確認。接続が null あるいは空でないか確認 カラムが (文字列に対し) null でないか確認
@Past プロパティ (日付あるいはカレンダー) 日付が過去のものかを確認 カラムに check 制約を追加
@Future プロパティ (日付あるいはカレンダー) 日付が未来のものかを確認 なし
@Pattern(regex="regexp", flag=) or @Patterns( {@Pattern(...)} ) プロパティ (文字列) プロパティが一致フラグを渡す正規表現に一致しているか確認 (java.util.regex.Pattern 参照) なし
@Range(min=, max=) プロパティ (数字あるいは数字の文字列表現) 最小値以上、最大値以下であるか確認 カラムに check 制約を追加
@Size(min=, max=) プロパティ (アレイ、コレクション、マップ) 要素サイズが最小値以上、最大値以下であるかを確認 なし
@AssertFalse プロパティ メソッドが false と評価しているよう確認 (アノテーションでなくコードで制約が表現されている場合に便利) なし
@AssertTrue プロパティ メソッドが true と評価しているよう確認 (アノテーションでなくコードで制約が表現されている場合に便利) なし
@Valid プロパティ (オブジェクト) 紐付けされたオブジェクトに再帰的にバリデーションを行う。オブジェクトがコレクションかアレイの場合は、要素は再帰的に検証されます。また、オブジェクトがマップの場合、値要素が再帰的に検証されます。 なし
@Email プロパティ (文字列) 文字列が電子メールアドレスの仕様に準拠するかどうかを確認します。 なし
@CreditCardNumber プロパティ (文字列) 文字列がクレジットカード番号用に適切にフォーマットされているか確認 (Luhn アルゴリズムの派生) なし
@Digits(integerDigits=1) プロパティ (数字あるいは数字の文字列表現) プロパティが最大 integerDigits の整数桁と fractionalDigits 少数点以下の桁数を持つ数字であるか確認 カラムの制度とスケールを定義
@EAN プロパティ (文字列) 文字列が正しくフォーマットされた EAN あるいは UPC-A コードであるか確認 なし