Мне нужна пользовательская проверка PersonConstraint аннотация для нескольких PersonDTO полей с другой опцией проверки.Вот код:
public class PersonDTO {
public PersonDTO() {}
Long id;
@PersonConstraint(constraint = @Constraint(validatedBy = NameValidator.class))
String name;
@PersonConstraint(constraint = @Constraint(validatedBy = RegNumValidator.class))
String registrationNumber;
...
}
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PersonConstraint {
String message() default "{com.b.green.PersonConstraint.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
Constraint constraint();
}
Но похоже, что аннотации не работают следующим образом.Работает только для:
public class PersonDTO {
public PersonDTO() {}
Long id;
@PersonConstraint
String name;
@PersonConstraint
String registrationNumber;
...
}
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NameValidator.class)
public @interface PersonConstraint {
String message() default "{com.b.green.PersonConstraint.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Можно ли заставить работать первую версию кода?Мне нужно управлять валидаторами через параметры аннотации.