当参数从前端传到controller时,进行分组校验
自定义校验
@Getter
@Setter
public class LithiumElectricProductInsertOrUpdateDto {
//分组
public interface update extends Default{}
@NotNull(message = "id不能为空", groups={update.class})
private String id; // ID
/**
* 成品货号
*/
@Length(min = 1,max = 20,message = "成品货号长度介于1到20")
private String productNo;
/**
* 电池包货号
*/
@Length(min = 1,max = 20,message = "电池包货号长度介于1到20")
private String liEProductNo;
/**
* 海运运输鉴定报告编号
*/
@Length(min = 1,max = 100,message = "海运运输鉴定报告编号长度介于1到100")
private String transporReportNumber;
/**
* 版本号
*/
@NotNull(message = "版本号不能为空", groups={update.class})
private Integer versionNo; // 数据版本号[默认为1]
}
分组校验因为情况不同时需要校验的字段不同,比如添加和修改时
id和版本号是修改才需要的字段
/**
* 添加
* @param dto
* @return
*/
@PostMapping
public ResultDto<Integer> insert(@Validated @RequestBody LithiumElectricProductInsertOrUpdateDto dto){
return ResultUtil.success(service.insert(dto));
}
/**
* 修改
* @param dto
* @return
*/
@PutMapping
public ResultDto<Integer> update(
@RequestBody @Validated(value = Modify.class) LithiumElectricProductInsertOrUpdateDto dto){
return ResultUtil.success(service.update(dto));
}