顺序校验(@GroupSequence)

Exisi 2022-06-28 22:51:10
Categories: Tags:
  • 为了调整校验的顺序,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);

}

}