@TableId(value = “id”,type= IdType.INPUT) 这种方式是主键手动输入 AI代码助手复制代码 主键生成方式类型如下(IdType): AUTO(0, “数据库ID自增”), INPUT(1, “用户输入ID”), ID_WORKER(2, “全局唯一ID”), UUID(3, “全局唯一ID”), NONE(4, “该类型为未设置主键类型”), ID_WORKER_ST...
原因肯定是mybatisplus用了框架自身的id增长机制,但是不知道怎么控制,所以归根结底还是对框架不熟悉吧。 解决办法就是关掉mybatis自增长,在实体映射类里更改相关注解即可: @TableId(value = "role_id",type = IdType.AUTO) private Long roleId; 注意红色部分,是使用数据库自带的增长策略。 本人遇到问题是因为自...
将id字段类型改为long, 这样就能保证有足够位数放入生成的id 2. 调整数据库id字段类型 将数据库的id字段的长度(改为20位) 解决方案二 如果想要使用id自增的, 就需要把mybatis-plus这个id生成的功能给关掉 添加注解 在id字段上加上如下注解即可 @TableId(value ="id",type= IdType.AUTO) AI代码助手复制代...
Mybatis-Plus⾃动⽣成的数据库id过长 ⼀、问题 作为⼀名第⼀次使⽤mybatis-plus的萌新开发⼯程师,在项⽬开发过程中遇到⼀个问题。当使⽤mybatis-plus⾃带的mybatis-generate⽣成DO⽂件,如下图所⽰ DO类由注释@Table修饰,主键id由注释@Id,@GeneratedValue修饰。但是使⽤这样的默认DO...
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库就自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT来生成id。
问题场景:当数据量累计到一定程度,会突然出现一个问题,就是mysql的自增主键从四位一下跳到了20位,查了一些帖子还有人出现负数的情况,不论如何修改数据库的自增方式都不起作用。排查原因发现是引用了mybatis-plus组件,该组件会自动插入一个id到实体对象, 导致的原因:实体类主键上面只添加了@TableId 解决办法...
接下来,验证一番后,发现,Mybatis-Plus在做insert操作时,确实自动生成一条长19的数字当做该条数据的id插入到MySql,导致虽然MySql表设置了自增,但被Mybatis-Plus生成的id为1468844351843872769所影响,导致下一条数据自动递增值变成1468844351843872770,这种过长的id值,在做索引维护时,是很影响效率,占用空间过大,故而,这...
排查原因发现是引用了mybatis-plus组件,该组件会自动插入一个id到实体对象, 导致的原因: 实体类主键上面只添加了@TableId 解决办法: 第一种(推荐): 在主键上面添加注解: @TableId(value="id",type = IdType.AUTO),id为数据库索引字段,重新部署后台程序,然后重新恢复数据库表对应的自增方式,处理历史数据。设置...
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库旧自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT的id。
这就很奇怪了,目前该表数据量很少,且主键是设置AUTO_INCREMENT,正常而言,应该自增id仍在1000范围内,但目前已经变成一串长数字。 底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库就自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT来生成id。