前言
距離上一次發部落格也有挺久的了,今天又遇到了一個問題,是以記錄一下解決方法,希望能幫到遇到同樣問題的朋友。
解決辦法
先說一下解決辦法吧
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long zkShopId;
在你的實體類找到這個字段,在字段上面添加:@JsonFormat(shape = JsonFormat.Shape.STRING)就好了。
再來講講原因
@JsonFormat(shape = JsonFormat.Shape.STRING)作用就是将JSON資料的此字段格式化為字元串類型,保證前端超過17位不會出現精度丢失問題!
由于JavaScript中Number類型的自身原因,并不能完全表示Long型的數字,在Long長度大于17位時會出現精度丢失的問題。
是以,不應該使用ResponseBean<Long>,應該使用ResponseBean<String>,轉換成字元串類型的。
我後端id是Long類型,資料庫是bigint類型,id是由雪花算法産生的唯一ID,在後端id傳給前端的時候,并沒有出錯,而是發現根據id查詢的時候,怎麼查詢都是空的,然後調試的時候就發現了

好了,就記錄到這吧,希望能幫到你哦!