Інтеграція валідації Hibernate у Spring Boot для розширеної перевірки параметрів — групова валідація

Групова валідація дозволяє застосовувати різні правила валідації в залежності від операції (наприклад, створення чи оновлення сутності).
Наприклад, при створенні нового користувача вам, можливо, не потрібно перевіряти 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

Leave a Reply

Your email address will not be published. Required fields are marked *