spring boot + myBatis Plus 主键ID生成。前端不能使用问题

今天遇到的问题。利用mybatis插入数后。生成一长串数字。Java中的Long类型。与JS中的数值类型不进行匹配。导致js会改变

看了一下文档。

spring boot + myBatis Plus 主键ID生成。前端不能使用问题_第1张图片

从此处可以看出,mybatis plus 主键生成策略,默认值为全局唯一。id。具体算法不知道。可以解释的是。他们生成的数据太大了。前端没办法处理

// ---- 后续知道的原因

生成算法是雪花 因为Java的long类型和js的number类型存储大小不一致。会丢失精度。所以把Id类型改成String也是可以的

 

一开始想的是。怎么让他变得短一点。然后去改了数据库表的类型。把bigint(10) 改成 5 是不生效的

没办法。从根源找答案

翻了文档发现了问题

 

于是。破案了。

有三种种解决方案

第一种、在实体类上加注解   

@TableId(type = IdType.AUTO)

spring boot + myBatis Plus 主键ID生成。前端不能使用问题_第2张图片

代码侵入性太高。不推荐!!!

 

第二种、改配置文件(推荐)

spring boot + myBatis Plus 主键ID生成。前端不能使用问题_第3张图片

根据自己应用场景选择自己的生成方案。我这里普通的表没什么问题。就选择了0.数据库自增吧

第三种、类型改成String即可(推荐)

 

个人记录。轻喷。如有问题。可联系我。

邮箱: [email protected]

QQ: 79542867

你可能感兴趣的:(spring boot + myBatis Plus 主键ID生成。前端不能使用问题)