对字段 进行注解
@NotNull(message = "修改必须指定品牌id",groups = {UpdateGroup.class})
@Null(message = "新增不能指定id",groups = {AddGroup.class})
@NotBlank(message = "品牌名必须提交",groups = {AddGroup.class,UpdateGroup.class})
@URL(message = "logo必须是一个合法的url地址",groups={AddGroup.class,UpdateGroup.class})
@ListValue(vals={0,1},groups = {AddGroup.class, UpdateStatusGroup.class})
@NotEmpty(groups={AddGroup.class})
@Pattern(regexp="^[a-zA-Z]$",message = "检索首字母必须是一个字母",groups={AddGroup.class,UpdateGroup.class})//自定义注解
@Min(value = 0,message = "排序必须大于等于0",groups={AddGroup.class,UpdateGroup.class})
@TableLogic(value = "0",delval = "1")//删除标识
@TableId
private Long nameFiled;
@TableField(exist = false)//注解标识不是数据库字段
private string test;
分组校验 即带 group 注解,需要在 controller 层 入参加入 @Validated({AddGroup.class})
分组 类 只需要是接口 AddGroup 里面不需要定义任何抽象方法.
若 controller层有注解 @Validated({AddGroup.class}) 实体 中有字段 未分配到组,则不会验证
public interface AddGroup {
}
删除标识 @TableLogic(value = “0”,delval = “1”)//删除标识 或者 全局 配置
global-config:
db-config:
id-type: auto
logic-delete-value: 1
logic-not-delete-value: 0
集中处理 所有异常
/**
* 集中处理所有异常 对于以上注解返回报错时统一处理
*/
@Slf4j
@RestControllerAdvice(basePackages = "com.test.controller")//扫描的路径
public class ExceptionControllerAdvice {
@ExceptionHandler(value= MethodArgumentNotValidException.class)
public R handleVaildException(MethodArgumentNotValidException e){
log.error("数据校验出现问题{},异常类型:{}",e.getMessage(),e.getClass());
BindingResult bindingResult = e.getBindingResult();
Map<String,String> errorMap = new HashMap<>();
bindingResult.getFieldErrors().forEach((fieldError)->{
errorMap.put(fieldError.getField(),fieldError.getDefaultMessage());
});
return R.error(400,"错误处理信息提示").put("data",errorMap);
}
@ExceptionHandler(value = Throwable.class)
public R handleException(Throwable throwable){
log.error("错误:",throwable);
return R.error(409,"错误信息提示");
}
}
mybatis-plus 查询
//select * from tables where catelog_id=? and (attr_group_id=key or attr_group_name like %key%)
QueryWrapper wrapper = new QueryWrapper();
if(!StringUtils.isEmpty(key)){
wrapper.and((obj)->{
obj.eq(“attr_group_id”,key).or().like(“attr_group_name”,key);
});
}