mybatis-plus id主键生成的坑
简要说明
由于mybatis-plus会自动插入一个id到实体对象,不管你封装与否,所以有时候导致一些意外的情况发生
默认是生成一个长数字字符串(编码不同可能结尾带有字母)
错误
estedexceptionisorg.apache.ibatis.reflection.ReflectionException:Couldnotsetproperty'id'of'classcom.xxx'withvalue'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”);
到此这篇关于mybatis-plusid主键生成的坑的文章就介绍到这了,更多相关mybatis-plusid主键生成内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。