Mybatis Plus的主键未自动生成(@TableId和字段类型问题)


 

springboot

框架:springboot+mybatisplus+shiro+thymeleaf

问题:

使用

@TableId(type = IdType.AUTO)

注解自动生成主键,结果报错,主键未自动生成

Mybatis Plus的主键策略有如下几种:

  • AUTO 数据库ID自增
    使用AUTO策略时,数据库建表时需要将主键设置成AUTO_INCREMENT,否则会插入不了
  • INPUT 用户输入ID
    用户输入ID
  • ID_WORKER 全局唯一ID,Long类型的主键
    全局唯一ID,Long类型的主键
  • ID_WORKER_STR 字符串全局唯一ID
    字符串全局唯一ID
  • UUID 全局唯一ID,UUID类型的主键
    UUID类型的主键
  • NONE 该类型为未设置主键类型
    该类型为未设置主键类型

其中id_worker和id_worker_str当前版本似乎弃用

原因有很多

  1. 使用AUTO策略时,数据库建表时需要将主键设置成AUTO_INCREMENT,否则会插入不了
  2. 使用AUTO,INPUT,ID_WORKER时,数据库字段需要时int
  3. 使用AUTO,INPUT,ID_WORKER时,entity代码中id的类型要为Long,不能是基础类型long
  4. ID_WORKER_STR似乎无法自动生成主键了,不建议将数据库id字段设计为string类型

 

我的原因:

基本上犯了上面的所有。。。

解决办法:

按上面的原因自查即可。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值