MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實現(xiàn)
一、通用枚舉
解決了繁瑣的配置,讓 mybatis 優(yōu)雅的使用枚舉屬性!
按我的理解是維護在內(nèi)存中且不易修改的輕量級字典。目前覺得這個功能的使用場景相對有限,但是如果有用到的話開箱即用也是很棒的。廢話不多說,接下來讓我們看一下它的實際效果吧。
一般搜索用戶信息列表,列如用戶有禁用和啟用兩個狀態(tài)
@Data public 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; }
查詢結(jié)果:
如果前端接收到j(luò)son數(shù)據(jù)后,需要的status字段屬性值,不是1或者2,需要的是禁止或者啟用的中文字,如何解決呢?
二、聲明通用枚舉屬性
public enum StatusEnum implements IEnum<Integer> { DISABLE(1,"禁用"), ENABLE(2,"啟用"); private final Integer status; //數(shù)據(jù)庫存儲字段 private final String desc; //返回的顯示描述 StatusEnum(Integer status,String desc){ this.status = status; this.desc = desc; } @Override public Integer getValue() { return this.status; } @JsonValue public String getDesc(){ return this.desc; } }
實體屬性使用枚舉類型
@Data public class User implements Serializable { private static final long serialVersionUID = 1L; private BigInteger id; private String name; private String email; private StatusEnum status; }
三、配置掃描通用枚舉
#mybatis-plus mybatis-plus: configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:com/example/plus/mapper/xml/*.xml typeEnumsPackage: 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依賴 ,該插件會導(dǎo)致很多問題
到此這篇關(guān)于MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis-Plus 枚舉自動關(guān)聯(lián)注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡析Java中的util.concurrent.Future接口
這篇文章主要介紹了簡析Java中的util.concurrent.Future接口,作者把future歸結(jié)為在未來得到目標對象的占位符,需要的朋友可以參考下2015-07-07SpringMVC互聯(lián)網(wǎng)軟件架構(gòu)REST使用詳解
這篇文章主要為大家詳細介紹了SpringMVC互聯(lián)網(wǎng)軟件架構(gòu)REST的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03Java用三元運算符判斷奇數(shù)和偶數(shù)的簡單實現(xiàn)
這篇文章主要介紹了Java用三元運算符判斷奇數(shù)和偶數(shù)的簡單實現(xiàn),需要的朋友可以參考下2014-02-02全面解析Spring Security 過濾器鏈的機制和特性
這篇文章主要介紹了Spring Security 過濾器鏈的機制和特性,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Springboot如何獲取配置文件application.yml中自定義的變量并使用
這篇文章主要介紹了Springboot中獲取配置文件(application.yml)中自定義的變量并使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09IDEA項目啟動時Flyway數(shù)據(jù)庫遷移中的checksum不匹配問題及最新解決方案
面對IDEA項目啟動時報出的Flyway遷移校驗和不匹配問題,核心在于保持遷移腳本的一致性、正確管理和理解Flyway的工作機制,本文介紹IDEA項目啟動時Flyway數(shù)據(jù)庫遷移中的checksum不匹配問題及最新解決方案,感興趣的朋友一起看看吧2024-01-01Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例
這篇文章主要介紹了Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例,具有一定借鑒價值,需要的朋友可以了解下。2017-12-12