您好,登录后才能下订单哦!
这篇文章运用简单易懂的例子给大家介绍使用mybatis-plus生成 id主键时会遇到哪些问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
简要说明
由于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类型介绍
关于使用mybatis-plus生成 id主键时会遇到哪些问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。