Динамически установить группы в Spring Validator - PullRequest
0 голосов
/ 12 марта 2019

Я реализую Rest API, где мне нужно выполнить некоторую проверку тела запроса.Основываясь на значении, определенном в поле «type» в моем Json, я хочу динамически установить для групп Spring Validator.

Изучив документацию, я нашел единственное решение - установить * 1004.* @ Validated аннотация в сигнатуре метода и жесткое кодирование групп для передачи в него.

Я нашел альтернативное решение с использованием Validator из пакета javax.validation, и мой код выглядит сейчас так:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    Set<ConstraintViolation<EnterpriseResource>> constraintViolationSet = new HashSet<>();
    if (isTypeEnterprise(enterpriseResource, EnterpriseTypeEnum.BUYER)) {
      constraintViolationSet = validator.validate(enterpriseResource, BuyerEnterprise.class);
    }
    if (isTypeEnterprise(enterpriseResource, EnterpriseTypeEnum.PROVIDER)) {
      constraintViolationSet = validator.validate(enterpriseResource, ProviderEnterprise.class);
    }
    if (!constraintViolationSet.isEmpty()) {
      log.info("=========================ERRORS: {}", constraintViolationSet.toString());
      throw new ConstraintViolationException(constraintViolationSet);
    }

Есть ли обходной путь, чтобы я мог получить то же поведение, используя экземпляр Spring Validator?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...