mybatis-plus id主鍵生成的坑
簡(jiǎn)要說(shuō)明
由于mybatis-plus會(huì)自動(dòng)插入一個(gè)id到實(shí)體對(duì)象, 不管你封裝與否, 所以有時(shí)候?qū)е乱恍┮馔獾那闆r發(fā)生
默認(rèn)是生成一個(gè)長(zhǎng)數(shù)字字符串(編碼不同可能結(jié)尾帶有字母)
錯(cuò)誤
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
大致就是由于自動(dòng)生成了一個(gè)id1110423703487479810, 但是無(wú)法放入到integer中
解決方案一
1. 修改id字段類型
將id字段類型改為long, 這樣就能保證有足夠位數(shù)放入生成的id
2. 調(diào)整數(shù)據(jù)庫(kù)id字段類型
將數(shù)據(jù)庫(kù)的id字段的長(zhǎng)度(改為20位)
解決方案二
如果想要使用id自增的, 就需要把mybatis-plus這個(gè)id生成的功能給關(guān)掉
添加注解
在id字段上加上如下注解即可
@TableId(value = "id",type = IdType.AUTO)
其他type類型介紹
- AUTO : AUTO(0, “數(shù)據(jù)庫(kù)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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 內(nèi)存安全問(wèn)題的注意事項(xiàng)
內(nèi)存安全問(wèn)題是每個(gè)程序員開(kāi)發(fā)時(shí)都需要面對(duì)的問(wèn)題,本文介紹了JVM管理內(nèi)存的原理以及內(nèi)存安全問(wèn)題需要注意的地方,有此需求的朋友可以參考下本文2021-06-06Spring6?的JdbcTemplate的JDBC模板類的使用介紹(最新推薦)
JdbcTemplate?是Spring?提供的一個(gè)JDBC模板類,是對(duì)JDBC的封裝,簡(jiǎn)化JDBC代碼,當(dāng)然,你也可以不用,可以讓Spring集成其它的ORM框架,這篇文章主要介紹了Spring6?的JdbcTemplate的JDBC模板類的詳細(xì)使用說(shuō)明,需要的朋友可以參考下2024-05-05java實(shí)現(xiàn)Spring在XML配置java類的方法
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)Spring在XML配置java類的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求
這篇文章主要介紹了Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09詳解Spring Boot 項(xiàng)目啟動(dòng)時(shí)執(zhí)行特定方法
這篇文章主要介紹了詳解Spring Boot 項(xiàng)目啟動(dòng)時(shí)執(zhí)行特定方法,Springboot給我們提供了兩種“開(kāi)機(jī)啟動(dòng)”某些方法的方式:ApplicationRunner和CommandLineRunner。感興趣的小伙伴們可以參考一下2018-06-06SpringBoot3實(shí)現(xiàn)統(tǒng)一結(jié)果封裝的示例代碼
Spring Boot進(jìn)行統(tǒng)一結(jié)果封裝的主要目的是提高開(kāi)發(fā)效率、降低代碼重復(fù)率,并且提供一致的API響應(yīng)格式,從而簡(jiǎn)化前后端交互和錯(cuò)誤處理,所以本文給大家介紹了SpringBoot3實(shí)現(xiàn)統(tǒng)一結(jié)果封裝的方法,需要的朋友可以參考下2024-03-03JAVA中SSM框架的搭建實(shí)現(xiàn)CRUD的方法
這篇文章主要介紹了JAVA中SSM框架的搭建實(shí)現(xiàn)CRUD的方法,小編把運(yùn)行代碼列了出來(lái),供大家參考。2017-11-11