- 为了调整校验的顺序,Hibernate Validator 中 jakarta.validation 提供了 @GroupSequence 注解,用于按特定顺序校验。
- @GroupSequence 注解有以下参数:
参数 |
描述 |
value |
校验的分组接口类,默认{} |
- 在 @GroupSequence 内可以指定分组校验的顺序。例如 @GroupSequence({Insert.class, Update.class}) 先执行 Insert 校验,然后执行 Update 校验。如果 Insert 分组,校验失败了,则不会进行 Update 分组的校验
示例
- UserForm.java
@GroupSequence({Insert.class, Update.class})
public class UserForm {
@Null(message = "新增时id必须为空", groups = {Insert.class})
@NotNull(message = "更新时id不能为空", groups = {Update.class})
private String id;
@NotEmpty(message = "姓名不能为空" , groups = {Insert.class})
private String name;
@NotEmpty(message = "年龄不能为空" , groups = {Insert.class})
private String age;
}
- MainController.java
@Controller
Public class MainController(){
@PostMapping("/editUser")
public ResultVo editUser(@RequestBody @Validated UserForm form){
return ResultVoUtil.success(form);
}
}