パッケージ jakarta.validation
アノテーション型 Constraint
@DocumentedSE @TargetSE(ANNOTATION_TYPESE) @RetentionSE(RUNTIMESE) public @interface Constraint
アノテーションを Jakarta Bean Validation 制約としてマークします。特定の制約アノテーションは、制約検証実装のリストを参照する
@Constraintアノテーションによってアノテーションを付ける必要があります。各制約アノテーションは、次の属性をホストする必要があります。
String message() default [...];は、デフォルトで、制約の完全修飾クラス名とそれに続く.messageで構成されるエラーメッセージキーになります。たとえば"{com.acme.constraints.NotSafe.message}"- ユーザーがターゲットグループをカスタマイズするための
Class<?>[] groups() default {}; - 拡張性を目的とした
Class<? extends Payload>[] payload() default {};
ジェネリクスとクロスパラメーターの両方である制約を作成する場合、制約アノテーションは
validationAppliesTo()プロパティをホストする必要があります。制約は、アノテーション付き要素を対象とする場合は一般的であり、メソッドまたはコンストラクターのパラメーターの配列を対象とする場合はクロスパラメーターです。ConstraintTarget validationAppliesTo() default ConstraintTarget.IMPLICIT;このプロパティを使用すると、制約のユーザーは、制約が実行可能ファイルの戻り値の型をターゲットにするか、パラメーターの配列をターゲットにするかを選択できます。次の場合、制約は一般的であり、クロスパラメーターです。- 2 種類の
ConstraintValidatorが制約にアタッチされています。1 つはValidationTarget.ANNOTATED_ELEMENTをターゲティングし、もう 1 つはValidationTarget.PARAMETERSをターゲティングします。 - または、
ConstraintValidatorがANNOTATED_ELEMENTとPARAMETERSの両方をターゲットとする場合。
SupportedValidationTargetを参照してください。制約定義の例を次に示します。
@Documented @Constraint(validatedBy = OrderNumberValidator.class) @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) @Retention(RUNTIME) public @interface OrderNumber { String message() default "{com.acme.constraint.OrderNumber.message}"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; }- 作成者:
- Emmanuel Bernard, Gavin King, Hardy Ferentschik
必須定数のサマリー
必須要素 修飾子と型 必須要素 説明 ClassSE<? extends ConstraintValidator<?,?>>[]validatedBy制約を実装するConstraintValidatorクラス。
要素の詳細
validatedBy
ClassSE<? extends ConstraintValidator<?,?>>[] validatedBy
制約を実装するConstraintValidatorクラス。指定されたクラスは、指定されたValidationTargetの異なるターゲット型を参照する必要があります。2 つのConstraintValidatorが同じ型を参照している場合、例外が発生します。メソッドまたはコンストラクターのパラメーターの配列(クロスパラメーター)をターゲットとする最大 1 つの
ConstraintValidatorが受け入れられます。2 つ以上存在する場合、例外が発生します。- 戻り値:
- 制約を実装する
ConstraintValidatorクラスの配列