Доступ к пути родительского свойства в пользовательском валидаторе - PullRequest
1 голос
/ 16 апреля 2019

Пишу кастом javax.validation.ConstraintValidator.Я хотел бы добавить собственный путь к свойству ConstraintViolation, включая путь родительского свойства.Итак:

class BaseClass {
  @Valid MyProperty first;
}

@MyValidator class MyProperty {
  String someField;
}

class MyValidatorImpl implements ConstraintValidator<MyValidator, MyProperty> { 
  // ...
  public boolean isValid(MyProperty value, ConstraintValidatorContext context) {
     context.disableDefaultConstraintViolation();
     context.buildConstraintViolationWithTemplate("My message")
         // How to access the parent property name "first" here? 
         .addPropertyNode("my custom property") 
         .addConstraintViolation()
  }
}

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 16 апреля 2019

Очевидно, что ответом является добавление .addBeanNode() вызова после .addPropertyNode() вызова. Это фактически добавит имя родительского узла перед именем свойства. Обратите внимание, что вы не можете позвонить addBeanNode() до вызова addPropertyNode(), поскольку создатель этого не позволяет.

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