栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatisplus自动生成主键导致的删除失败问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatisplus自动生成主键导致的删除失败问题

今天在做删除操作的时候发现了一个问题,由于表中的主键我设置的自增,当新增时,使用的mybatisplus自带的新增方法,导致主键过大,当我在做删除操作的时候,前端传递到后台的id已经变了,但是前端识别不出来,后来才发现,当表里面设置的自增时,在mybatisplus中要将自带的自增禁用,否则就会在新增的时候使用mybatisplus生成的id,这个id很明显是大于前端最大默认值的。

正常情况下,新增的时候,设置了主键自增,那么在新增时,主键是没有值的,如图:

但是在使用mybatisplus的在做新增操作的时候,我发现主键已经有值了,

但是实际前端拿到的主键却是这样的,和表中的主键并不对应:

这才导致我删除的时候总是删除失败,
所以有两种解决办法:
1:在实体类中加一个注解

 @TableId(type= IdType.AUTO)

不让mybatisplus自动生成一个主键赋值给id,而是按照我们自己设计的在表中让主键自增

2:将表中的主键类型设为varchar类型,不让其自增,使用mybatsplus的自增,还是用该注解,不过类型要变,这样在新增的时候,主键就会是一个随机的字符串,如图:


当执行删除的时候,传递到后台的id依然不变:

 @TableId(type= IdType.ASSIGN_UUID)

注解里面的类型选择:

不管选用哪种方法,都可以实现删除操作了~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643559.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号