mybatis批量insert出现Error getting generated key or setting result to parameter object解决办法

项目中批量insert插入的时候虽然数据全部插入成功了,但是抛出了一个异常

以下是异常信息:

org.mybatis.spring.MyBatisSystemException:

nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object.

Cause: org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found. Available parameters are [param1, patrolChannelBean]

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)

出现这个异常的原因是在mybatis配置文件中配置了下面这一行.

允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖
mybatis批量insert出现Error getting generated key or setting result to parameter object解决办法_第1张图片
改为:false

这样配置的话dao接口上会默认返回insert之后返回的id

只要将value设置为false或者直接删除(默认就是false)就不在出现这个异常信息

如果有需要返回id的接口方法可以手动设置useGeneratedKeys为true来实现

@Options(useGeneratedKeys=true,keyProperty=“id”)

你可能感兴趣的:(Java)