Java + Mybatis Plus 插入数据时ID乱序原因?-灵析社区

无心插柳柳成萌

mysql自增,id设置成了自增key,有插入失败后id会乱序,比如原来是1,一直失败了5个,到了6。这时候正确插入一条,id返回6。再正确插入一条结果id是5,不知道问题出在哪? 用的是 java + mybatis plus + mysql 8 读写数据,手动无法重现 1.实体类 public class SaledData implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; private LocalDate recordDate; // 设置了唯一约束 ... } 2.从远程获取数据并入库 @Scheduled(cron = "0 0 1/1 \* \* ?") public void getSaledData() { @Resource private ISaledDataService iSaledDataService; ... SaledData saledData = new SaledData(); ... iSaledDataService.save(saledData); // 有时候数据会重复,会插入失败 } 3.出现的错误结果 "id": 158, "createTime": "2024-05-13T04:00:08", "recordDate": "2024-05-12" "id": 160, "createTime": "2024-05-12T20:00:12", "recordDate": "2024-05-11"

阅读量:219

点赞量:0

问AI
应该是最帅的鹅
很奇怪的问题,跟踪日志发现像是@Scheduled调度线程有的卡住了,本该立即写入库的记录延迟了8个小时后才入库。 @Scheduled(cron = "0 0 1/1 __ ?", zone = "Asia/Shanghai") 调度加上时区就正常了,没明白是怎么导致的线程延迟