当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

数据库主键id试用雪花算法 @Transactional(rollbackFor = Exception.class) default boolean saveBatch(Collection entityList) { return saveBatch(entityList, DEFAULT_BATCH_SIZE); }

重现步骤(如果有就写完整)

高并发测试

报错信息

Duplicate entry '1531830571133603843' for key 'PRIMARY'; nested exception is java.sql.BatchUpdateException: Duplicate entry '1531830571133603843'

Comment From: miemieYaho

给出复现demo

Comment From: leishenglong

我描述下吧:做了个高并发入库的操作,表的id就是用的雪花算法,并发高的时候时间和机器都一样,所以重复了,大佬能给点改进建议吗?

给出复现demo

Comment From: miemieYaho

你可以看看美团雪花或者https://github.com/imadcn/idworker这种的

Comment From: xfeng-github

我也出现同样类似的情况

版本 mybatis-plus:2.3

Comment From: CodingOX

刚看了下源码,机器id是可以设置的吧。 com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder#build最后的那个build方法

Comment From: qmdx

刚看了下源码,机器id是可以设置的吧。 com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder#build最后的那个build方法

对的,设置机器 ID 同一台机器避免多个实例一直导致重复ID