Mybatis-Plus自动生成id涉及的问题

 起因: 一开始我发现我页面和数据库中用户id不一致,导致我通过id删除用户操作时,找不到对应id,结果导致删除不了。如下图:

 解决过程: 
        ① 我第一想到的办法就是能不能把生成的id变的短而简单,比如1,2,3,4...  这样就不会让页面和数据库的id不一致。于是我就给实体类主键添加@TableId(value="id",type=IdType.AUTO) 注解,

让主键id不使用雪花算法生成id,用数据库自增id的形式生成id(此时如果你数据库id并没有设置为自增,那就会报错!
        PS: 很多人添加了上图注解后,添加User后仍然发现生成的id是19位的数字,其实并不是因为这个@TableId没生效,而是因为数据库保留了之前雪花算法id的最大值,从此以后就以这个最大值为基础进行自增。 
        还有,如果你简单的以为把数据库表中原先19位的用户id全部改为1,2,3,4....等短而简单的数字作为id,配合@TableId注解,想着添加新的User的时候生成的 id 就不会是19位的数字了,但结果依旧为19位的数字,还是那句话数据库保留了之前雪花算法id的最大值,从此以后就以这个最大值为基础进行自增。 
        看来只有我把数据库的表删了,重新建表,这样让数据库由于id自增保留的最大id清空,最终发现添加新User就变成了1,2,3,4......成功解决!!!

        ②还有个办法就是把User的id改成String类型,这样也能让前端JS和后端的id一致。
或者在项目中都是将注解标注在对应字段上,在Json序列化的时候把Long自动转为String。 

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Mybatis-plusMyBatis增强工具包,用于简化CRUD操作。该工具包为MyBatis提供了一些高效,有用,即用的功能,使用它可以有效地节省您的开发时间。Mybatis-plus特征与MyBatis完全兼容 启动时自动配置 开箱即用的用于操作数据库的界面 强大而灵活的条件包装器 生成主键的多种策略 Lambda样式的API 全能和高度可定制的代码生成器 自动分页操作 SQL注入防御 支持活动记录 支持可插拔的自定义界面 内置许多有用的扩展Mybatis-plus功能1、单表CURD(简单 + 批量)操作,自动完成(支持 like 比较等查询)。 2、分页插件,Count查询自动或自定义SQL查询。 3、Spring根据不同环境加载不同配置支持(支持typeAliasesPackage通配符扫描)。 【自动生成Entity Mapper Service文件】Mybatis-plusMybatis增强工具包) v3.3.2更新日志分页参数提取,单元测试用例修复 达梦数据库代码生成器表过滤支持 微软数据库代码生成器表过滤支持 修复代码生成器属性字段规则错误 SelectById 支持自定义方法名 修复分页插件获取数据库类型问题 Json转换器空值处理 bugfix(mybatis-plus-generator):SQL类型返回错误问题 调整未知方言异常,自动识别url转换小写匹配. fix: 初始化TableInfo中遇到多个字段有@TableId注解时未能抛出异常的问题 SuperController有Class参数的set方法 增加方法StrategyConfig.setSuperServiceImplClass(java.lang.Class<?>). 代码生成器命名策略调整. 扩展分页缓存key值计算. 去除方法推测,直接访问属性字段. 修正枚举处理器类型不匹配比较. 修改表前缀匹配方式 修改在Mybatis全局配置文件中设置分页插件参数不生效问题 修改在Mybatis全局配置文件中设置分页插件参数不生效问 修复PR未指定解析器的时候引发空指针 增加分页插件limit参数配置 修复指定superEntityClass重复生成父类字段问题 无主键的情况无需导入IdType与TableId包 调整生成BaseResultMap格式 支持lombok模式下选择是否进行链式set生成 修复解析器for update错误 过滤PG约束列(只留下主键约束) 增加生成器禁用模板生成 fix(kotlin): 修复动态表名BUG,最大努力替换表名 修复PG约束生成重复属性字段问题 fix(kotlin): 将LambdaUtils中缓存的key改为String 代码生成器增加数据库关键字处理接口 fix github/issues/2454 支持注解可继承 新增 AES 加密数据库用户名密码 优化方法入参泛型,支持更多类型 修复代码生成器开启移除is前缀生成实体缺少包导入 fixed github issues/2470Mybatis-plus截图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值