菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

更新和添加参数校验优化(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{

    }
}

posted on   hhmzd233  阅读(20)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示