1. Mybatis-Plus 主键ID自增问题
问题描述
使用 Mybatis-Plus
自带的 IdWorker
策略时,生成的ID
与返回的ID不同
//表示通过mybatis-plus自带的优化版本的SnowFlake算法生成主键。
@TableId(value = "id", type = IdType.ID_WORKER)
private String id;
问题原因
mybatis-plus的ID_WORKER策略会生成一个Long型的很长长长长的数字,这个数字传到前台之后,超过了js中数字的最大范围,具体表现为最后几位始终为 0。
返回ID 1238344596237394000
生成ID 1238344596237393922
解决方法
方案一: 将ID转换为String再返回(适用于Entity)
@TableId(value = "id", type = IdType.ID_WORKER)
@JsonSerialize(using = ToStringSerializer.class) //将ID序列化为String
protected Long id;