MybatisPlus 使用 saveBatch方法批量插入時(shí)雪花算法ID重復(fù)問題. (Java) |
批量插入的實(shí)體ID屬性使用 注解 @TableId(type = IdType.ASSIGN_ID) 方式 實(shí)現(xiàn)ID生成.
代碼中需要批量插入實(shí)體數(shù)據(jù),使用 saveBatch(List); 時(shí)報(bào)數(shù)據(jù)庫錯(cuò)誤: ID KEY 條目重復(fù).
解決 :
于是嘗試使用 IdWorker.getId() 方法在生成實(shí)體時(shí)插入ID,然后DeBug查看ID生成情況. 發(fā)現(xiàn)也是出現(xiàn)了ID重復(fù)的情況,然后觀察實(shí)體屬性發(fā)現(xiàn)一個(gè)規(guī)律,重復(fù)的ID實(shí)體其他屬性值也是一致的,就有了這么一個(gè)猜測:
因?yàn)閷?shí)體屬性相等,影響了ID的賦值,導(dǎo)致ID重復(fù).于是我把屬性重復(fù)的實(shí)體剔除后再次生成.果然ID沒有重復(fù)了.文章來源:http://www.zghlxwxcb.cn/news/detail-506767.html
具體原因 :
因?yàn)楫?dāng)時(shí)時(shí)間比較急促?zèng)]來得急去查看源碼,具體是哪一步導(dǎo)致出現(xiàn)這樣的問題,后續(xù)補(bǔ)充上.文章來源地址http://www.zghlxwxcb.cn/news/detail-506767.html
到了這里,關(guān)于記 MybatisPlus 使用 saveBatch方法批量插入時(shí)雪花算法ID重復(fù)問題.的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!