При проверке коллекций, есть ли способ узнать позицию проверяемого компонента из пользовательского валидатора ограничений? - PullRequest
0 голосов
/ 29 мая 2020

Давайте рассмотрим этот пример использования ниже.

У меня есть bean-компонент с коллекцией другого bean-компонента в качестве одного из его свойств:

public class MyBean {
    ...
    @Valid
    private NestedBean[] nestedBeans;
    ...
}

Вложенный bean-компонент имеет ограничение уровня настраиваемого класса, например это:

@SomeConstraint
public class NestedBean {
    ...
}

И у нас есть валидатор, который проверяет это настраиваемое ограничение:

public SomeConstraintValidator implements ConstraintValidator<SomeConstraint, NestedBean> {
    ...
    public boolean isValid(NestedBean bean, ConstraintValidatorContext context) {
        ...
    }
}

Есть ли способ узнать позицию текущего «bean-объекта», который проверяется , чтобы мы могли отображать такие сообщения об ошибках, как:

«Третий вложенный bean-компонент недействителен ....»

Или есть другой способ добиться этого?

Реализация ConstraintValidationContext Hibernate содержит путь к свойству с этими деталями, но не является API publi c.

...