Групова валідація дозволяє застосовувати різні правила валідації в залежності від операції (наприклад, створення чи оновлення сутності).
Наприклад, при створенні нового користувача вам, можливо, не потрібно перевіряти userId
, але при оновленні користувача це може бути необхідно.
Опис груп валідації:
public interface GroupA {}
public interface GroupB {}
public class Person { @NotBlank(groups = GroupA.class)
private Integer userId; // User ID @NotBlank(groups = GroupB.class)
private String username; // Username @Range(min = 0, max = 100, groups = GroupB.class)
private Integer age; // Age @NotNull(groups = GroupA.class)
private String address; // Address
}
Застосування групової валідації:
@PostMapping("/createuser")
public String createUser(@Validated(GroupA.class) Person person, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return bindingResult.getFieldError().getDefaultMessage();
}
// Proceed with user creation
return "User created";
}
Таким чином, валідація є груповою, і ви можете контролювати, що саме перевіряється в залежності від дії (наприклад, створення або оновлення).
Перекладено з: Integrating Hibernate Validation in Spring Boot for Advanced Parameter Validation — Group Validation