后端雪花算法主键ID传到前端变了

Mybatis Plus 的主键策略:

    /*** id*/@TableId(type = IdType.ASSIGN_ID)private Long id;

这个主键策略会用雪花算法生成一个 19位的ID,比如 1791006670084734978

现象

后端生成的 id 是正常的,通过 swagger 文档此时获取到的 id 也和数据库中的 id 一致,但是在前端用 number 存储 id 之后发现变成了 179 100 667 008 473 4000

可能是因为 number 的精度只有16位,而雪花算法的精度是 19位,所以导致后面三位丢失了。

1. 最暴力的做法,就是把id改为 string 类型,不过太复杂,可能会出现很多问题,会比较麻烦。

2. 全局配置来让 Long类型转换为 JSON 中的string 类型

@Configuration
public class JacksonConfig {@Bean@Primary@ConditionalOnMissingBean(ObjectMapper.class)public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder){ObjectMapper objectMapper = builder.createXmlMapper(false).build();// 全局配置序列化返回 JSON 处理SimpleModule simpleModule = new SimpleModule();//JSON Long ==> StringsimpleModule.addSerializer(Long.class, ToStringSerializer.instance);objectMapper.registerModule(simpleModule);return objectMapper;}}

3. 在 application.yml 中加配置

spring:jackson:generator:write-numbers-as-strings: true  

4. 在id 字段上加注解

@JsonSerialize(using = ToStringSerializer.class)

文章来源:雪花算法生成的ID在返回给前端之后和生成的不一样,到底是什么原因?_雪花算法返给前端不准确-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-盛水最多的容器-109

题目要求 思路 1.正常用双循环外循环i从0开始,内循环从height.size()-1开始去计算每一个值是可以的,但是因为数据量太大,会超时。 2.考虑到超时,需要优化一些,比如第一个选下标1,第二个选下标3和第一个选下…

Java 面试题日常练习

### 基础知识 1. **什么是 JVM?解释其架构。** - JVM(Java Virtual Machine)是 Java 程序的运行时环境。其架构包括类加载器子系统、运行时数据区(堆、栈、本地方法栈、PC 寄存器、方法区)、执行引擎和本地方法接口…

心识宇宙 x TapData:如何加速落地实时数仓,助力 AI 企业智慧决策

使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替 OGG、DSG 等同步工具,「CDC 流处理 数据集成」组合拳,加速仓内数据流转,帮助企业将真正具有业务价值的数据作用到实处&#xff0c…

基于springboot实现华府便利店信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现华府便利店信息管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本华府便利店信息管理系统就是在这样的大环境下诞生&#xff…

电影《朝云暮雨》观后感

上周看了电影《朝云暮雨》,看完之后,感觉自己整个人都不太好了,也不是说电影太差,只是觉得电影没有传达正能量,让人很不舒服。 (1)演技在线 对于著名的演员“范伟”,或者说&#x…

Payload SDK dji

开发硬件 感谢您的耐心等待,建议您可以考虑下树莓派4B或Jetson Nano开发板,看您需求选择,OSDK即将停止服务,我们建议您使用PSDK来进行开发,PSDK包含了OSDK的功能。Payload SDK 感谢您对大疆产品的支持!祝…

【耕地保卫战:揭秘“占补平衡”】守护粮仓的智慧策略

嗨,各位小伙伴们,今天咱们来聊聊一个与我们每日餐桌紧密相关的主题——耕地占补平衡。在现代化的车轮滚滚向前时,如何在发展与保护之间找到那个微妙的平衡点,确保我们的“米袋子”满满当当呢?这就不得不提到耕地占补平…

SpringSession原理简析

本文借鉴于:Spring-Session 原理简析 - 知乎 (zhihu.com) 目录 概述 使用方式 原理 总结 概述 Session的原理 Session是存在服务器的一种用来存放用户数据的类哈希表结构,当浏览器第一次发送请求的时候服务器会生成一个hashtable和一个sessionid&…

论文阅读--Language-driven Semantic Segmentation

效果很好,文本增加一个词,就能找到对应的分割地方,给出的无用标签也不会去错误分割,而且能理解文本意思,例如dog和pet都能把狗给分割出来 image encoder使用DPT分割模型,大致架构为ViTdecoder,d…

【个人经历分享】末流本科地信,毕业转码经验

本人24届末流本科,地理信息科学专业。 我们这个专业可以说是 “高不成,低不就”的专业,什么都学但都不精。考研我实在是卷不动同学历的人,我在大三的时候就开始考虑转码。 至于我为什么选择转码,选择了GIS开发&#xf…

element ui 下拉框Select 选择器 上下箭头旋转方向样式错乱——>优化方案

目录 前言1、问题复现2、预期效果3、input框样式修改解析4、修改方案 🚀写在最后 前言 测试A:那啥!抠图仔,样式怎么点着点着就出问题了。 前端:啥?css样式错乱了?你是不是有缓存啊&#xff01…

js常用数组方法

1.arr.push() -末尾添加 该方法可以向数组末尾添加一个或多个元素,并返回数组新的长度可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到元素的末尾原数组会发生变化 var arr [ 1, 2, 3, 4 ] arr.push(5) console.log(arr) // [ 1, …

linux命令arp的使用

arp arp 命令用于显示和修改 IP 到 MAC 转换表 补充说明 arp 命令 是 Address Resolution Protocol,地址解析协议,是通过解析网络层地址来找寻数据链路层地址的一个网络协议包中极其重要的网络传输协议。而该命令可以显示和修改 arp 协议解析表中的缓…

Mia for Gmail for Mac:Mac用户的邮件管理首选

对于追求高效工作的Mac用户来说,Mia for Gmail for Mac无疑是邮件管理的首选工具。它以其卓越的性能和丰富的功能,为用户带来了前所未有的高效邮件管理体验。 Mia for Gmail for Mac不仅支持多帐号登录和标签选择功能,还提供了邮件分类、垃圾…

linux 中 fd 申请和释放管理(两级 bitmap)

linux 中 fd 的几点理解_linux fd-CSDN博客 通过上边的文章,我们可以知道,在 linux 中,fd 有以下几点需要了解: (1)fd 表示进程打开的文件,是进程级别的资源,不是系统级别的资源 …

【前端每日一题】day11

一个盒子(DIV)里有若干个小盒子,每个小盒子里还可能有多个小盒子 多层盒子结构。每个盒子都有一个唯一的id和 name 属性。现在给出一个盒子的 id 请找到这个盒子并打开,输出这个盒子内部所有小盒子的id和 name,并继续打开这些小盒子输出id和 …

【Unity】Unity项目转抖音小游戏(四)一些常用方法

1.初始化 SDK会在Unity启动前就初始化好,但是又有Init的接口,所以这里通过 StarkSDK.s_ContainerEnv 判断有没有初始化,没有的话就手动初始化 public override void Init(string code, Action callback){Debug.Log("初始化抖音SDK"…

AIGC全面介绍

AIGC(Artificial Intelligence Generated Content),即生成式人工智能,是人工智能1.0时代进入2.0时代的重要标志。这一技术的出现,标志着人工智能从计算智能、感知智能迈向了认知智能的新阶段。以下是关于AIGC的全面介绍…

基于manifest文件批量将coding的仓库导入gitlab中

文章目录 写在前面的话背景编写manifest文件最终效果 写在前面的话 前面有讲过通过manifest清单导入项目到gitlab中,但是实际的操作是不同gitlab实例之间的操作,然而对于在不同gitlab实例的repo迁移而言,显然direct transfer会更合适。 背景…

民国漫画杂志《时代漫画》第21期.PDF

时代漫画21.PDF: https://url03.ctfile.com/f/1779803-1248634754-017e2b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!