更新和添加参数校验优化(2024-3-26)
所花时间(包括上课): | 1 h左右 |
代码量(行): | 150 左右 |
搏客量(篇): | 1 |
了解到的知识点: | 更新和添加参数校验优化 |
备注(其他): |
由于更新文章分类和添加文章分类,参数校验时,一个需要ID notnull 一个只是让id自动增长,
所以当再次添加新的文章时会出现id为空的错误:
这时候就要用到validation提供的分组校验:
把校验项进行分类,在完成不同功能的时候,校验指定组中的校验项
package com.di.bigevent.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class Category {
@NotNull(groups=Update.class)
private Integer id;//主键ID
@NotEmpty(groups={Add.class,Update.class})
private String categoryName;//分类名称
@NotEmpty(groups={Add.class,Update.class})
private String categoryAlias;//分类别名
private Integer createUser;//创建人ID
@JsonFormat(pattern = "yyyy-HH-dd HH:mm:ss")
private LocalDateTime createTime;//创建时间
@JsonFormat(pattern = "yyyy-HH-dd HH:mm:ss")
private LocalDateTime updateTime;//更新时间
public interface Add{
}
public interface Update{
}
}
///////////////////////////////////////////////////
@PostMapping//insert
public Result add(@RequestBody @Validated(Category.Add.class) Category category)
@PutMapping//update
public Result update(@RequestBody @Validated(Category.Update.class) Category category)
定义校验项时如果没有指定分组,则属于Default分组,分组可以继承
可以改为:
package com.di.bigevent.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class Category {
@NotNull(groups=Update.class)
private Integer id;//主键ID
private String categoryName;//分类名称
private String categoryAlias;//分类别名
private Integer createUser;//创建人ID
@JsonFormat(pattern = "yyyy-HH-dd HH:mm:ss")
private LocalDateTime createTime;//创建时间
@JsonFormat(pattern = "yyyy-HH-dd HH:mm:ss")
private LocalDateTime updateTime;//更新时间
public interface Add extends Default{
}
public interface Update extends Default{
}
}
标签:
big-event
, 大二下-软件工程日报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?