第一种(推荐): 在主键上面添加注解: @TableId(value="id",type = IdType.AUTO),id为数据库索引字段,且重新恢复数据库表对应的自增方式,处理历史数据。 第二种:直接修改字段为long类型, 保证有足够位数放入生成的id。 第三种:修改主键字段为字符串,使用uuid或者集群唯一id方式记录,且主键添加注解: @TableId(...
我们往DB中插入一条数据,使用Mybatis plus的BaseMapper#insert()方法时,如果实体类的主键成员是从自增序列中自动取值,而我们又不做任何标识的话会出现以下错误。出现主键数据很大而无法插入的问题。org.apache.ibatis.reflection.ReflectionException :Could not set property 'id' of 'class com .pojo .sallerPojo...
接下来,验证一番后,发现,Mybatis-Plus在做insert操作时,确实自动生成了一条长19的数字当做该条数据的id插入到MySql,导致虽然MySql表设置了自增,但被该1468844351843872769影响了,导致下一条数据自动递增值变成了1468844351843872770,这种过长的id值,在做索引维护时,很影响效率,故而,这个问题必须得解决。 image.png 到...
1 先看看是不是自增主键没加注解 (加了哇,没问题哇,怎么还那么大呢) image.png 2.奥对,看看是不是包导错了 似乎也没问题 image.png 再添几条数据试试,id越来越大 突然想到,会不会是之前添加的数据,虽然删除掉了,但是删的是逻辑数据,主键值、索引那些物理数据没被删掉,那就进行截断表的操作: image.png...
问题场景:当数据量累计到一定程度,会突然出现一个问题,就是mysql的自增主键从四位一下跳到了20位,查了一些帖子还有人出现负数的情况,不论如何修改数据库的自增方式都不起作用。排查原因发现是引用了mybatis-plus组件,该组件会自动插入一个id到实体对象, 导致的原因:实体类主键上面只添加了@TableId 解决办法...
注意:同时主键自增的话,mybatisplus的基本insert方法中的id就为null,否则就会生成一个long型的id,通过雪花算法实现。 作用:将属性字段设置为主键。 1.@Tableld属性value(“uid”):设置和数据库id相同即可 2.@Tableld属性type:表示主键生成策略,默认为雪花算法, ...
若依框架下从mybatis升级到mybatis-plus后遇到的一些问题: 在建表时定义了主键自增初始值也设置为一个二位常数,但是经过mybatis-plus的主键自增注解后会生成一个长度为19位的主键id! 而且在看数据库结构主键自增的初始值也被更改为长度为19位的大数!
主键自增: <insertid="add"parameterType="EStudent"useGeneratedKeys="true"keyProperty="id">insert into TStudent(name, age) values(#{name}, #{age})</insert> 原文地址:https://blog.csdn.net/qq_37186247/article/details/85238506
55_尚学堂_MybatisPlus_mp的获取自增的主键值是【尚学堂】MyBatis实战教程进阶_MyBatisPlus精品视频课程_MyBatisPlus_MyBatis入门__多表查询_MyBatis持久层框架的第55集视频,该合集共计65集,视频收藏或关注UP主,及时了解更多相关视频内容。
在最新版本中,当前端传入的主键ID为“”时 会出现报错 例如Cause: java.sql.SQLException: Incorrect integer value: '' for column 'crm_id' at row 1; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect integer value: '' for column 'crm_id' at row 1; nested exception...