最近项目中使用雪花算法ID,发现传回前端时,末几位被吃了,全都为0,出现精度损失现象。
查询资料后发现,雪花算法生成的id长度有19位,而json在序列化中会将数字类型转换为16位,这样后面的精度就丢失了。
所以有如下几种解决方案;
1,所有id使用String类型,弊端是字符做id查询效率比较低,
2,是使用配置类或者注解,改变序列化过程,
最终选用在id上加上该注解@JsonSerialize(using= ToStringSerializer.class)
最近项目中使用雪花算法ID,发现传回前端时,末几位被吃了,全都为0,出现精度损失现象。
查询资料后发现,雪花算法生成的id长度有19位,而json在序列化中会将数字类型转换为16位,这样后面的精度就丢失了。
所以有如下几种解决方案;
1,所有id使用String类型,弊端是字符做id查询效率比较低,
2,是使用配置类或者注解,改变序列化过程,
最终选用在id上加上该注解@JsonSerialize(using= ToStringSerializer.class)