关于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:

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

 

posted @   Hurricane#5250  阅读(373)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示