找回密码
 立即注册
查看: 2|回复: 0

31,分组校验

[复制链接]

231

主题

6

精华

235

金币

技术维护QQ:515138

积分
500
发表于 昨天 14:54 | 显示全部楼层 |阅读模式
    把校验项进行归类分组,在完成不同的功能的时候,校验指定组中的校验项
定义分组
定义校验项时指定归属的分组
校验时指定要校验的分组
1.jpg
1,实体类添加注解:
  1. package com.jinhei.pojp;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import jakarta.validation.constraints.NotEmpty;
  4. import jakarta.validation.constraints.NotNull;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Data;
  7. import lombok.NoArgsConstructor;
  8. import java.time.LocalDateTime;
  9. @Data
  10. @AllArgsConstructor
  11. @NoArgsConstructor
  12. public class Category {
  13.     @NotNull(groups = Update.class)
  14.     private Integer id;//主键ID
  15.     @NotEmpty(groups = {Add.class, Update.class})
  16.     private String categoryName;//分类名称
  17.     @NotEmpty(groups = {Add.class, Update.class})
  18.     private String categoryAlias;//分类别名
  19.     private Integer createUser;//创建人ID
  20.     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  21.     private LocalDateTime createTime;//创建时间
  22.     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  23.     private LocalDateTime updateTime;//更新时间
  24.     public interface Add{
  25.     }
  26.     public interface Update{
  27.     }
  28. }
复制代码
2,使用代码演示:
  1. package com.jinhei.controller;
  2. import com.jinhei.pojp.Category;
  3. import com.jinhei.pojp.Result;
  4. import com.jinhei.service.CategoryService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.validation.annotation.Validated;
  7. import org.springframework.web.bind.annotation.*;
  8. import java.util.List;
  9. @RestController
  10. @RequestMapping("/category")
  11. public class CategoryController {
  12.     @Autowired
  13.     private CategoryService categoryService;
  14.     /**
  15.      * 添加分类
  16.      */
  17.     @PostMapping("/add")
  18.     public Result add(@RequestBody @Validated(Category.Add.class) Category category) {
  19.         categoryService.add(category);
  20.         return Result.success();
  21.     }
  22.     /**
  23.      * 分类列表
  24.      */
  25.     @GetMapping
  26.     public Result<List<Category>> list(){
  27.         List<Category> cs = categoryService.list();
  28.         return Result.success(cs);
  29.     }
  30.     /**
  31.      * 分类详情
  32.      */
  33.     @GetMapping("/detail")
  34.     public Result<Category> detail(Integer id){
  35.         Category c = categoryService.findById(id);
  36.         return Result.success(c);
  37.     }
  38.     /**
  39.      * 修改分类
  40.      */
  41.     @PutMapping
  42.     public Result update(@RequestBody @Validated(Category.Update.class) Category category){
  43.         categoryService.update(category);
  44.         return Result.success();
  45.     }
  46. }
复制代码
优化,使用默认分组:
//如果说某个校验项没有指定分组,默认属于Default分组
    //分组之间可以继承, A extends B  那么A中拥有B中所有的校验项
  1. package com.jinhei.pojp;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import jakarta.validation.constraints.NotEmpty;
  4. import jakarta.validation.constraints.NotNull;
  5. import jakarta.validation.groups.Default;
  6. import lombok.AllArgsConstructor;
  7. import lombok.Data;
  8. import lombok.NoArgsConstructor;
  9. import java.time.LocalDateTime;
  10. @Data
  11. @AllArgsConstructor
  12. @NoArgsConstructor
  13. public class Category {
  14.     @NotNull(groups = Update.class)
  15.     private Integer id;//主键ID
  16.     @NotEmpty
  17.     private String categoryName;//分类名称
  18.     @NotEmpty
  19.     private String categoryAlias;//分类别名
  20.     private Integer createUser;//创建人ID
  21.     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  22.     private LocalDateTime createTime;//创建时间
  23.     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  24.     private LocalDateTime updateTime;//更新时间
  25.     public interface Add extends Default {
  26.     }
  27.     public interface Update extends Default{
  28.     }
  29. }
复制代码
2.jpg


上一篇:30,时间日期格式输出转换
下一篇:32,自定义校验
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2026-3-3 06:47

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表