菜鸟的博客

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

导航

更新和添加参数校验优化(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 2024-03-26 21:34  hhmzd233  阅读(17)  评论(0编辑  收藏  举报