项目中批量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生成策略将被覆盖
改为:false
这样配置的话dao接口上会默认返回insert之后返回的id
只要将value设置为false或者直接删除(默认就是false)就不在出现这个异常信息
如果有需要返回id的接口方法可以手动设置useGeneratedKeys为true来实现
@Options(useGeneratedKeys=true,keyProperty=“id”)