mybatis-plus id主鍵生成的坑
簡要說明
由于mybatis-plus會自動插入一個id到實體對象, 不管你封裝與否, 所以有時候?qū)е乱恍┮馔獾那闆r發(fā)生
默認(rèn)是生成一個長數(shù)字字符串(編碼不同可能結(jié)尾帶有字母)
錯誤
ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.xxx' with value '1110423703487479810' Cause: java.lang.IllegalArgumentException: java.lang.ClassCastException@14041406
大致就是由于自動生成了一個id1110423703487479810, 但是無法放入到integer中
解決方案一
1. 修改id字段類型
將id字段類型改為long, 這樣就能保證有足夠位數(shù)放入生成的id
2. 調(diào)整數(shù)據(jù)庫id字段類型
將數(shù)據(jù)庫的id字段的長度(改為20位)
解決方案二
如果想要使用id自增的, 就需要把mybatis-plus這個id生成的功能給關(guān)掉
添加注解
在id字段上加上如下注解即可
@TableId(value = "id",type = IdType.AUTO)
其他type類型介紹
- AUTO : AUTO(0, “數(shù)據(jù)庫ID自增”),
- INPUT : INPUT(1, “用戶輸入ID”),
- ID_WORKER : ID_WORKER(2, “全局唯一ID”),
- UUID : UUID(3, “全局唯一ID”),
- NONE : NONE(4, “該類型為未設(shè)置主鍵類型”),
- ID_WORKER_STR : ID_WORKER_STR(5, “字符串全局唯一ID”);
到此這篇關(guān)于mybatis-plus id主鍵生成的坑的文章就介紹到這了,更多相關(guān)mybatis-plus id主鍵生成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring6?的JdbcTemplate的JDBC模板類的使用介紹(最新推薦)
JdbcTemplate?是Spring?提供的一個JDBC模板類,是對JDBC的封裝,簡化JDBC代碼,當(dāng)然,你也可以不用,可以讓Spring集成其它的ORM框架,這篇文章主要介紹了Spring6?的JdbcTemplate的JDBC模板類的詳細(xì)使用說明,需要的朋友可以參考下2024-05-05java實現(xiàn)Spring在XML配置java類的方法
下面小編就為大家?guī)硪黄猨ava實現(xiàn)Spring在XML配置java類的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Java commons-httpclient如果實現(xiàn)get及post請求
這篇文章主要介紹了Java commons-httpclient如果實現(xiàn)get及post請求,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09詳解Spring Boot 項目啟動時執(zhí)行特定方法
這篇文章主要介紹了詳解Spring Boot 項目啟動時執(zhí)行特定方法,Springboot給我們提供了兩種“開機啟動”某些方法的方式:ApplicationRunner和CommandLineRunner。感興趣的小伙伴們可以參考一下2018-06-06SpringBoot3實現(xiàn)統(tǒng)一結(jié)果封裝的示例代碼
Spring Boot進(jìn)行統(tǒng)一結(jié)果封裝的主要目的是提高開發(fā)效率、降低代碼重復(fù)率,并且提供一致的API響應(yīng)格式,從而簡化前后端交互和錯誤處理,所以本文給大家介紹了SpringBoot3實現(xiàn)統(tǒng)一結(jié)果封裝的方法,需要的朋友可以參考下2024-03-03