今天在做删除操作的时候发现了一个问题,由于表中的主键我设置的自增,当新增时,使用的mybatisplus自带的新增方法,导致主键过大,当我在做删除操作的时候,前端传递到后台的id已经变了,但是前端识别不出来,后来才发现,当表里面设置的自增时,在mybatisplus中要将自带的自增禁用,否则就会在新增的时候使用mybatisplus生成的id,这个id很明显是大于前端最大默认值的。
正常情况下,新增的时候,设置了主键自增,那么在新增时,主键是没有值的,如图:
但是在使用mybatisplus的在做新增操作的时候,我发现主键已经有值了,
但是实际前端拿到的主键却是这样的,和表中的主键并不对应:
这才导致我删除的时候总是删除失败,
所以有两种解决办法:
1:在实体类中加一个注解
@TableId(type= IdType.AUTO)
不让mybatisplus自动生成一个主键赋值给id,而是按照我们自己设计的在表中让主键自增
2:将表中的主键类型设为varchar类型,不让其自增,使用mybatsplus的自增,还是用该注解,不过类型要变,这样在新增的时候,主键就会是一个随机的字符串,如图:
当执行删除的时候,传递到后台的id依然不变:
@TableId(type= IdType.ASSIGN_UUID)
注解里面的类型选择:
不管选用哪种方法,都可以实现删除操作了~
描述有误的地方欢迎大家指正,大家有问题可加qq 876942434。一起进步~