Spring Custom Validation JSR-303 @Constraint - PullRequest
       28

Spring Custom Validation JSR-303 @Constraint

0 голосов
/ 08 октября 2018

Мне нужна пользовательская проверка 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 {};

}

Можно ли заставить работать первую версию кода?Мне нужно управлять валидаторами через параметры аннотации.

...