Как проверять объекты в коллекции, когда проверенный объект верхнего уровня является универсальным типом коллекции - PullRequest
0 голосов
/ 24 октября 2018

У нас есть тип A, который объединяет тип B. При проверке A мы хотим проверить все B.Это просто:

@Data
public class A {
    @NotNull
    private String a;

    @Data
    @Valid
    private List<B> bs;

    public static class B {
        @NotNull
        private String b ;
    }    
}

Но, скажем, нам нужно проверить список.Это теоретически решаемо путем создания собственного класса, но создание объекта для запуска проверки не является приемлемым решением, а в примерах, таких как:

public void receive(@Valid List<A> messageList) {

в контроллерах / слушателях, это даже (я полагаю) не всегда легко возможно.Проблема в том, что @Valid неправильно использовался для значения ~ @ ExamineChildren.Данный Список действительно действителен, потому что он не имеет каких-либо определенных ограничений, но это не то, что мы хотим сделать.

Есть ли решение этой проблемы, кроме внедрения Validator и запуска проверки вручную?Даже если это не так, и вы на самом деле делаете это вручную (что я и делаю сейчас), вы можете показать свой подход?Меня бы интересовало, как вы обрабатываете ConstraintViolations и т. Д.

Спасибо!

...