mybatis 批量插入 返回主键

报错:

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 [list, param1]

<insert id="batchInsert" parameterType="java.util.List" keyColumn="id"  useGeneratedKeys="true" keyProperty="id">
    insert into jg_message (id, message_id, message_datetime,
      message_type, message_create_user_id, message_to_user_id,
      message_content, message_key)
    values
    <foreach collection ="list" item="jgMessage" separator =",">
      (#{jgMessage.id,jdbcType=INTEGER}, #{jgMessage.messageId,jdbcType=INTEGER}, #{jgMessage.messageDatetime,jdbcType=TIMESTAMP},
      #{jgMessage.messageType,jdbcType=INTEGER}, #{jgMessage.messageCreateUserId,jdbcType=VARCHAR}, #{jgMessage.messageToUserId,jdbcType=VARCHAR},
      #{jgMessage.messageContent,jdbcType=VARCHAR}, #{jgMessage.messageKey,jdbcType=VARCHAR})
    </foreach >
  </insert>
int batchInsert(@Param("list") List<JgMessage> jgMessage);

插入报错的原因

后查证资料,批量插入返回ID报错bug在mybatis.3.3.1才被修复,故将mybatis升级为3.3.1,spring-mybatis版本不做处理,重启后正常插入且成功返回正确id

 <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
<!-- mybatis版本号 -->
        <mybatis.version>3.3.1</mybatis.version>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值