10.4 Bean Validationの機能およびBean Validationの動作
この節では,Bean Validationの機能およびBean Validationの動作について説明します。
Bean Validationの機能を次の表に示します。
項番 |
機能 |
概要 |
|
---|---|---|---|
1 |
入力値の検証 |
JavaBeanに設定した値を指定したバリデーション定義で検証する機能です。 |
|
グループ管理機能 |
検証をグループ化する機能です。 |
||
メッセージ管理機能 |
検証結果がエラーの場合に返却するメッセージの管理を行う機能です。 |
||
ペイロード管理機能 |
検証結果をカテゴリ分割する機能です。※ |
||
2 |
カスタムバリデータ作成機能 |
独自の検証処理を作成する機能です。 |
|
3 |
ブートストラップ機能 |
Bean Validationプロバイダを変更できる機能です。 |
Bean Validationの機能は,アノテーションの指定によって利用できます。Bean Validation機能が提供するアノテーションクラス,指定可能な変数の型,および指定できない変数の型にアノテーションを指定した場合の動作を次の表に示します。
項番 |
アノテーションクラス |
指定可能な変数の型 |
指定できない変数の型にアノテーションを指定した場合の動作 |
備考 |
---|---|---|---|---|
1 |
Null |
すべての型に指定可能 |
− |
− |
2 |
NotNull |
すべての型に指定可能 |
− |
− |
3 |
AssertTrue |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
4 |
AssertFalse |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
5 |
Min |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
6 |
Max |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
7 |
DecimalMin |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
value属性に対して java.math.BigDecimalで解析できない値を指定した場合,javax.validation.ValidationExceptionがスローされます。 |
8 |
DecimalMax |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
value属性に対して java.math.BigDecimalで解析できない値を指定した場合,javax.validation.ValidationExceptionがスローされます。 |
9 |
Size |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
max属性とmin属性に対して負の値を指定した場合,javax.validation.ValidationExceptionがスローされます。 minの値にmaxより大きい値をした場合,javax.validation.ValidationExceptionがスローされます。 |
10 |
Digits |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
integer属性とfraction属性に対して負の値を指定した場合,javax.validation.ValidationExceptionがスローされます。 |
11 |
Past |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
12 |
Future |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
− |
13 |
Pattern |
|
javax.validation.UnexpectedTypeExceptionがスローされます。 |
regexp属性に対して指定した値が正規表現として誤っていた場合,javax.validation.ValidationException例外がスローされます。 正規表現の妥当性はjava.util.regex.Patternの仕様に依存します。 |