プロジェクトで bean-validation を使用しており、既存の制約アノテーション用のカスタム バリデーターを作成したいと考えています。
たとえば、という名前の日付/時刻を表すクラスがありますCustomDateTime
。@Past
このクラスを生年月日などとして使用するクラスでは、フィールドに次の注釈を付けたいと思います。
public class Person
{
@Past
private CustomDateTime dateOfBirth;
}
次に、 を実装してカスタム バリデータを作成しますConstraintValidator<Past, CustomDateTime>
。ただし、検証の実装にはカスタム バリデータに関する知識がないため、これは機能しません。次にスローします: javax.validation.UnexpectedTypeException: No validator could be found for type: com.example.CustomDateTime
.
通常、次のような別の注釈を作成することを知っています。
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {CustomDateTimePastValidator.class})
public @interface Past
{
....
}
しかし、それは私にはダブルコードのようです;-)
で使用するカスタムバリデータを登録するにはどうすればよい@Past
ですか?