今日bug
Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1
主键生成策略冲突
- 原因:
- 数据库表设计为
AUTO_INCREMENT
自增主键,但代码中未显式配置实体类的主键策略,导致 MyBatis-Plus 可能尝试生成分布式 ID(如雪花算法),而非使用数据库自增。
- 数据库表设计为
导致原因ID超阈值
排查
1.数据库默认id生成起始值 ,no
2.使用SQL生成,no
3. 代码检查,很普通的代码,no
4. 配置问题,yes
应该配置文件没有默认设置id生成方式,导致mybatis默认使用的是分布式的雪花算法生成的id,导致id超阈值,解决办法
1.全局设置
mybatis-plus:
global-config:
db-config:
id-type: auto # 全局使用数据库自增主键
2.单独设置