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生成策略将被覆盖

改为:false
这样配置的话dao接口上会默认返回insert之后返回的id
只要将value设置为false或者直接删除(默认就是false)就不在出现这个异常信息
如果有需要返回id的接口方法可以手动设置useGeneratedKeys为true来实现
@Options(useGeneratedKeys=true,keyProperty=“id”)
本文解析了MyBatis批量插入数据时出现的Errorgettinggeneratedkey异常原因及解决办法,详细介绍了如何通过调整useGeneratedKeys配置避免异常,并提供了自定义返回ID的方法。
920

被折叠的 条评论
为什么被折叠?



