@Size
Annotationに似たAnnotation用のJPA Bean Validatorを実装したいので、パラメータにmin
とmax
というアノテーションを許可します。私はドキュメンテーションとさまざまな例を見てきましたが、Annotationの複数のパラメータを許可する実装は見つかりませんでした。 @Sizeに似たパラメータを持つカスタムJPA Beanバリデータ
@Capacity(min=19, max=40)
public class CapacityImpl implements ConstraintValidator<Capacity, Integer> {
@Override
public void initialize(Capacity capacity) {
}
@Override
public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
return false;
}
}
のようになります。この
@Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = CapacityImpl.class)
public @interface Capacity {
String message() default "Capacity not in valid Range";
// Required by validation runtime
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
のように見える私の質問私は実際にできるようにするには、このインタフェースとクラスを変更する必要がない方法ですAnnotationのパラメータminとmaxを使用して、これらのパラメータ値でフィールドの値を検証できるようにします。
FWIW、これはJPA APIのではない、それは私が思ったより簡単ビーン検証APIを、 –