怎么解决mybatis plus 执行saveBatch中出现Too many keys are generated. There are only 13 target objects. You either specified a wrong 'keyProperty' or encountered a driver bug like #1523.
时间: 2023-02-11 22:19:32 浏览: 504
MybatisPlus使用代码生成器遇到的小问题(推荐)
MyBatis-Plus 的 saveBatch 方法在批量插入数据时可能会出现 "Too many keys are generated. There are only 13 target objects. You either specified a wrong keyProperty or encountered a driver bug" 的错误。这是因为在批量插入数据时,数据库可能会生成多余的自增主键。解决方法如下:
1. 修改 keyProperty 配置: 如果你使用了 keyProperty 属性,请确保你配置了正确的属性名称,并且这个属性能够被正确的自增主键覆盖
2. 批量插入数据前关闭主键自动生成:通过使用`@TableField(fill = FieldFill.INSERT)`可以在插入数据前关闭主键自动生成
3. 批量插入数据时关闭主键返回:Mybatis Plus会在批量插入时会自动返回主键给实体类,这时我们可以关闭这个功能(useGeneratedKeys = false)
4. 解决驱动问题: 这个错误也可能是由于数据库驱动的问题导致的,可以试着升级驱动版本.
这四种方法是解决该问题的常用方法,可以根据实际情况进行选择。
阅读全文