2017-03-18 5 views
0

@Size Annotationに似たAnnotation用のJPA Bean Validatorを実装したいので、パラメータにminmaxというアノテーションを許可します。私はドキュメンテーションとさまざまな例を見てきましたが、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を使用して、これらのパラメータ値でフィールドの値を検証できるようにします。

+1

FWIW、これはJPA APIのではない、それは私が思ったより簡単ビーン検証APIを、 –

答えて

2

あなたの注釈の定義にそれらをddは:D:

public @interface Capacity { 

    String message() default "Capacity not in valid Range"; 

    // Required by validation runtime 
    Class<?>[] groups() default { }; 
    Class<? extends Payload>[] payload() default { }; 

    int min(); 
    int max(); 
} 
+0

thanks fast応答を異なる仕様であり、 –

関連する問題