相关概念
# Error解决
## `@Validated`无法校验集合的问题
```java
@RestController
@RequestMapping("product/category")
@Validated(UpdateSortGroup.class) // 该校验分组和下面的@Valid配合使用, 解决校验集合的问题, 采取该分组, 其他校验分组以方法为准
public class CategoryController {
@RequestMapping("/update/sort")
// TODO: 如何解决批量校验问题(貌似解决不了)
public R batchUpdate(@Valid @RequestBody List<CategoryEntity> categoryEntities) {
categoryService.updateBatchById(categoryEntities);
return R.ok();
}
```
## `@Validated`其他无法校验的情况
>@validate()`里面可以填一个或多个分组, 只有分组里里面的校验才会生效, 没有声明这个分组的校验都不生效
即, 比如@Validated(A.class), 不是A的都用不了
# 相关概念
## 有了前端校验为什么需要后端校验呢?
> **有了前端校验, 确实通过表单提交的数据一定是万无一失的, 一定是正确的, 但是, 可能有一些别有用心的人, 把请求拿了出来, 按照请求用POSTMAN等软件自己去发, 这样就饶过了前端校验, 这个发过来的数据及其危险, 因此, 我们不仅要前端校验, 而且还有后端校验, 将一切破坏的幻想扼杀于摇篮之中**
## 为什么需要统一返回结果?
> 其实很简单, 因为项目都是前后端分离的, 如果不统一返回结果, 那么前端根本不知道你返回的是什么鬼东西, 所以一定要统一返回
## 为什么需要校验分组
> 添加记录或者更新记录是可能用到同一个实体类, 因此同一个实体类拥有了不同的应用场景, 不同的应用场景校验的数据可能不同, 因此需要校验分组
>校验分组的声明是通过接口的
## 为什么要自定义校验
> **很简单, 默认给的校验都不满足项目的需求, 所以需要自定义校验**