Не проверять поля, если одно из них не равно нулю - спящий режим


У вас есть идеи, как проверить один объект в этом случае?
У меня есть класс A, который состоит из двух других классов B и C:

public class A{
private B b;
private C c;
}

В этом случае я хотел бы проверить все поля из объекта B, который выглядит так:

public class B{
private String name;
private Long number;
}

Этот тип объекта A передается в мой контроллер как объект запроса, поэтому я хотел бы проверить его перед отправкой.
Дело в том, что я хотел бы проверить объекты название и номер, когда они оба переданы, но если какой-либо из них является ноль, тогда я просто хотел бы проверить тот, который не является ноль.
У вас есть идеи, как это сделать? Я сделал @Valid для объекта A, а также для поля B, но он не показывает исключения ConstraintValidatonException.


Проблема решена - проверка не работает в методе Restcontroller, но после передачи ее в службу все работает хорошо. Я собираюсь исследовать это в свободное время.

Я считаю, что это достижимо только путем проверки на уровне объекта. Так что вы, вероятно, получите аннотацию @Constraint(validatedBy = YourBValidator.class) на class B.

yegodm 15.03.2018 15:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
210
1

Ответы 1

Я бы оставил комментарий, но не могу, поэтому вот мой ответ:

Почему бы вам не создать метод validate в class B, который вы можете вызвать в class A.

Просто потому, что мне нужно было бы добавить еще около 15 свойств к классу B, так что мне нужно было написать огромный метод проверки. Я надеюсь, что в Hibernate Validation есть способ сделать это.

Maciej Papurzyński 15.03.2018 14:10

Другие вопросы по теме