MyBatis-Plus通用枚举自动关联注入的实现
目录
- 一、通用枚举
- 二、声明通用枚举属性
- 三、配置扫描通用枚举
- 四、注意、注意、注意
一、通用枚举
解决了繁琐的配置,让 mybatis 优雅的使用枚举属性!按我的理解是维护在内存中且不易修改的轻量级字典。目前觉得这个功能的使用场景相对有限,但是如果有用到的话开箱即用也是很棒的。废话不多说,接下来让我们看一下它的实际效果吧。
一般搜索用户信息列表,列如用户有禁用和启用两个状态
@Datapublic class User implements Serializable {private static final long serialVersionUID = 1L; private BigInteger id; private String name; private String email; private Integer status; }
@GetMapping("/findById")public User findById(){User user = userMapper.selectById(1); return user; }
查询结果:
【MyBatis-Plus通用枚举自动关联注入的实现】

文章图片
如果前端接收到json数据后,需要的status字段属性值,不是1或者2,需要的是禁止或者启用的中文字,如何解决呢?
二、声明通用枚举属性
public enum StatusEnum implements IEnum{DISABLE(1,"禁用"),ENABLE(2,"启用"); private final Integer status; //数据库存储字段private final String desc; //返回的显示描述StatusEnum(Integer status,String desc){this.status = status; this.desc = desc; }@Overridepublic Integer getValue() {return this.status; }@JsonValuepublic String getDesc(){return this.desc; }}
实体属性使用枚举类型
@Datapublic class User implements Serializable {private static final long serialVersionUID = 1L; private BigInteger id; private String name; private String email; private StatusEnum status; }
三、配置扫描通用枚举
#mybatis-plusmybatis-plus:configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:com/example/plus/mapper/xml/*.xmltypeEnumsPackage: com.example.plus.enums
加入该配置:
typeEnumsPackage: com.example.plus.enums
测试:

文章图片
四、注意、注意、注意 1、记得加上@JsonValue注解,序列化时只返回这一个字段的值。
2、配置扫描通用枚举可能3.0版本以前版本配置不一样,本列使用的是3.0以上版本
3、通用枚举无法正确取值,可能会报这样的错误
Caused by: java.lang.IllegalArgumentException: No enum constant
解决方式:
去除 pom.xml中:spring-boot-devtools依赖 ,该插件会导致很多问题
到此这篇关于MyBatis-Plus通用枚举自动关联注入的实现的文章就介绍到这了,更多相关MyBatis-Plus 枚举自动关联注入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Java基础-高级特性-枚举实现状态机
- 1.2序列通用操作
- 用c#转换word或excel文档为html文件|用c#转换word或excel文档为html文件,C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例...
- #新年觉醒day9#《改变》(实践的通用策略)
- c语言|【C语言】自定义类型 结构体 枚举 联合
- git本地仓库推送到远程仓库报错
- 通用数据级别权限的框架设计与实现(5)-总结与延伸思考
- 浅谈酒店管理
- 简单通用的|简单通用的 Recyclerview Adapter
- 十一|十一 . mybatis-plus(升级)