Как проверить полезную нагрузку в классе обслуживания в Spring Boot - PullRequest
3 голосов
/ 28 мая 2020

У меня есть Pojo Person с некоторыми полями, которые не могут быть нулевыми в классе MyGroup.

 public class Person {
     @NotNull(message = "address not null", groups = { MyGroup.class })
     private String address;

     @NotNull(message = "groupId not null", groups = { MyGroup.class })
     private UUID groupId;

     private String name;
     private String phoneNumber;

     @Email
     private String email;
     private Boolean active;
}

Я хочу проверить pojo только тогда, когда active = true, поэтому я не могу проверить в контроллере уровень.

Мне не удалось заставить валидацию работать в моем классе обслуживания:

 public class PersonService {
      @Validated(MyGroup.class)
      public PersonObject createPerson(@Valid Person p) { ... }

      public PersonObject updatePerson(Person p) { ... }
 }

В PersonsController, где я вызвал класс обслуживания

@Autowired
private PersonService personService;

@PostMapping
public PersonObject createPerson(@RequestBody Person payload) {
   if (payload.getActive()) {
       // want to validate the Not null fields
       return personService.createPerson(payload);
   } else {
       // does not need to validate fields 
       return personService.updatePerson(payload);
   }
}

Я также не смог не работает проверка адреса электронной почты. Любая помощь будет оценена.

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