发现使用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类型,但考虑到不仅得修改实体类字段,数据库表字段也需要修改类型,太麻烦了,直接用第一种