【异常处理】使用雪花算法的id出现的精度问题

雪花算法产生的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类型。

posted @ 2022-03-14 12:38  weiambt  阅读(254)  评论(0)    收藏  举报