使用Mybatis Plus的雪片算法作為主鍵導(dǎo)致精度丟失問題

? ? ? ?今天碰到一個很奇怪的問題:后端返回的數(shù)據(jù)中ID字段數(shù)據(jù)對應(yīng)不上,數(shù)據(jù)庫和前端得到的數(shù)據(jù)不一致,debug了下,原因是js解析json數(shù)據(jù)時,Long類型是用Number接收,Number最多是16位,所以導(dǎo)致后面幾位的數(shù)據(jù)丟失,查了下幾種解決方案,最終使用如下解決方案:Long類型使用json解析時用String類型解析,只需要自定義配置下Json的配置信息即可,配置信息如下:

@Configuration

public class JacksonConfig {

@Bean

@Primary

? @ConditionalOnMissingBean(ObjectMapper.class)

public ObjectMapperjacksonObjectMapper(Jackson2ObjectMapperBuilder builder)

{

ObjectMapper objectMapper = builder.createXmlMapper(false).build();

? ? // 全局配置序列化返回 JSON 處理

? ? SimpleModule simpleModule =new SimpleModule();

? ? //JSON Long ==> String

? ? simpleModule.addSerializer(Long.class, ToStringSerializer.instance);

? ? objectMapper.registerModule(simpleModule);

? ? return objectMapper;

? }

}

補(bǔ)充:

注意使用上面方法可能會對前端邏輯有影響,我這樣操作后,有前端頁面會提示需要字符串類型轉(zhuǎn)數(shù)字類型,所以還是需要謹(jǐn)慎一些。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容