雪花算法产生的id传到前端出现了精度的问题
现象
表的ID主键使用Mybatis plus默认 的雪花算法来生成。
数据库id是bigint类型,后端用Long
后端的id是—> 1297873308628300000
传到前端后—> 1297873308628307970
解决方案1:
直接用注解最快。
/*** 防止精度丢失*/@JsonSerialize(using = ToStringSerializer.class)private Long id;
https://www.cnblogs.com/zimug/archive/2020/08/25/13557662.html
解决方案2:
主键采用分布式id生成时,一般设置为string类型
当主键采用分布式id生成时,一般设置为string类型,因为分布式id生成位数为19位。后台能用Long接收,但js能接收的最长为16位,所以一般将id设为string类型。