У меня есть 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);
}
}
Я также не смог не работает проверка адреса электронной почты. Любая помощь будет оценена.