[bug ]后端Long类型数据传到前端精度丢失

发现使用mybatisplus生成雪花算法主键有一个坑,传到前端精度丢失了

例:

后端id:1529286789540163586

传到前端:1529286789540163600

百度后才知道,在java前后端交互的过程中,定义的Long字段超过16位之后,js发生截断,从而不能跟后台数据进行匹配。

办法1:

再实体类id字段上加上 @JsonSerialize (using = ToStringSerializer.class)

@TableName(value ="t_tag")
@Data
public class Tag implements Serializable {
    /**
     * id
     */
    @TableId
    @JsonSerialize (using = ToStringSerializer.class)
    private Long id;

办法2:

把实体类id字段long类型改成string类型,但考虑到不仅得修改实体类字段,数据库表字段也需要修改类型,太麻烦了,直接用第一种

你可能感兴趣的:(ssm,spring,boot)