欢迎来到代码驿站!

当前位置:首页 >

mybatis-plus id主键生成的坑

时间:2020-08-28 09:00:17|栏目:|点击:

简要说明

由于mybatis-plus会自动插入一个id到实体对象, 不管你封装与否, 所以有时候导致一些意外的情况发生

默认是生成一个长数字字符串(编码不同可能结尾带有字母)

错误

ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.xxx' with value '1110423703487479810' Cause: java.lang.IllegalArgumentException: java.lang.ClassCastException@14041406

大致就是由于自动生成了一个id1110423703487479810, 但是无法放入到integer中

解决方案一

1. 修改id字段类型

将id字段类型改为long, 这样就能保证有足够位数放入生成的id

2. 调整数据库id字段类型

将数据库的id字段的长度(改为20位)

解决方案二

如果想要使用id自增的, 就需要把mybatis-plus这个id生成的功能给关掉

添加注解

在id字段上加上如下注解即可

 @TableId(value = "id",type = IdType.AUTO)

其他type类型介绍

  • AUTO : AUTO(0, “数据库ID自增”),
  • INPUT : INPUT(1, “用户输入ID”),
  • ID_WORKER : ID_WORKER(2, “全局唯一ID”),
  • UUID : UUID(3, “全局唯一ID”),
  • NONE : NONE(4, “该类型为未设置主键类型”),
  • ID_WORKER_STR : ID_WORKER_STR(5, “字符串全局唯一ID”);

上一篇:Linux文本查看命令及其选项详解(cat,head,tail)

栏    目:

下一篇:R语言ggplot2边框背景去除的实现

本文标题:mybatis-plus id主键生成的坑

本文地址:http://www.codeinn.net/misctech/4175.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有