HTML5教程

关于Long类型传参到前端的相关BUG

本文主要是介绍关于Long类型传参到前端的相关BUG,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

BUG解决

问题描述:

在制作博客查看文章详情时候遇到传到前端的id和后端不一样导致无法显示页面

原因

因为ID是用的雪花算法,Long类型的id返回前端会导致进度丢失

丢失的原因:

js 的 number 类型支持的最大值是9007199254740992 (2 的 53次方 -1),溢出之后的精度会丢失,导致前后端的值不一致。 java 的 long 类型最大值为 9223372036854775807,远高于 js number类型的最大值,所以这个坑就出现了。

解决方法:

可以在每个实体类的id字段上加注解

 @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

注:目前觉得这个方法最简单又好用,如果把ID转为String类型会牺牲了 long 类型的性能优势

小Tips:

要注意出问题的实体类在哪里,可以通过查看相关方法的代码得知。

 

这篇关于关于Long类型传参到前端的相关BUG的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!