我是靠谱客的博主 单身中心,最近开发中收集的这篇文章主要介绍Mybatis-plus中主键id生成的一些问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Mybatis-plus中主键id生成的一些问题


所遇问题

在用Mybatis-plus中insert()方法插入数据时,我没有为id写set()方法。根据以往的经验,我想着id会自动生成的。但是事与愿违,出现了如下问题:

在这里插入图片描述

Could not set property 'id' of 'class com.shallow.entity.User' with value '1378574418980712450' Cause: java.lang.IllegalArgumentException: argument

解析

这里它生成了一个19位数字的id'1378574418980712450'(这是Mybatis-plus生成id的一个策略)。我id的类型是Integer,它远远超出我Integer的长度,因此它就无法将数据插入数据库中。


解决办法

1、在主键上添加@TableId(value = “id”,type = IdType.AUTO)属性

在这里插入图片描述
这种方式是关闭了Mybatis-plus自动生成id的方法,沿用咱们数据库中表id的自动增长。

2、全局配置方式添加id-type:auto

可以在application.yml(我这里是yml格式的)中添加全局配置。设置id-type: auto。(经测试,id-type: none也可以)

global-config:
    db-config:
      id-type: auto

这是id-type一些属性值的具体含义

auto 数据库id自增
none 该类型为未设置主键类型
input 用户输入id
id_worker 全局唯一id,Long类型的主键
id_worker_str 字符串全局唯一id
uuid 全局唯一id,uuid类型的主键



总结

综上所述,可以用以下两种方法解决Mybatis-plus中主键id生成的一些问题

1. 在主键上id上添加@TableId(value = “id”,type = IdType.AUTO)属性
2. 全局配置方式添加id-type:auto

最后

以上就是单身中心为你收集整理的Mybatis-plus中主键id生成的一些问题的全部内容,希望文章能够帮你解决Mybatis-plus中主键id生成的一些问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部