分组校验

当参数从前端传到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));
	}
上一篇:【AutoSAR】【XCP】功能详解(二)


下一篇:基于ABP落地领域驱动设计-05.实体创建和更新最佳实践