Je cherche à implémenter un JPA Bean Validator pour une annotation similaire à l'annotation @Size
, permettant ainsi les paramètres min
et max
sur l'annotation. J'ai regardé à travers la documentation et divers exemples mais je n'ai pas trouvé d'implémentation qui permettrait plusieurs paramètres sur l'Annotation.Personnalisé JPA Bean Validator avec des paramètres similaires à @Size
mon code ressemble actuellement à ce
@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 { };
}
L'annotation finale devrait ressembler à ceci @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;
}
}
Alors ma question est de savoir comment dois-je changer cette interface et la classe pour permettre effectivement la paramètres min et max sur l'annotation, de sorte que je peux ensuite valider la valeur du champ avec ces valeurs de paramètres
FWIW ce n'est pas l'API JPA, il est l'API de validation Bean, différentes spécifications –