mybatis批量插入并返回主键至原list

mybatis批量插入并返回主键至原list

报错

Error getting generated key or setting result to parameter object. UnsupportedOperationException

原因

  • mybatis 3.3.1之前的版本不支持批量新增返回主键id的功能;
  • mybatis 3.3.1之后一些版本支持了批量插入返回id,但是不支持Dao层批量插入的函数多个参数,@param注解;(也就是不支持分表)
  • mybatis 3.5.1之后的版本支持批量插入返回id,多个参数,@param注解

解决方案

  • 升级mybatis 3.5.1(并且保证maven依赖的所有mybatis版本都大于3.5.1)
  • Dao
void batchInsert(@Param("idx") Integer idx, @Param("list") List<DO> list);
  • mapper
    <insert id="batchInsert" useGeneratedKeys="true" keyProperty="list.id">
        insert into do_${idx} (name, address)
        values
        <foreach collection="list" item="item" separator=",">
            (#{item.name},#{item.address})
        </foreach>
    </insert>

注:因为函数有多个参数,所以无法确定取的是哪个参数的id,所以需要在keyProperty="list.id",表明是list的。

参考

mybatis 批量插入 返回主键id - 译林 - 博客园

mybatis批量插入数据并返回主键至原list集合_叛逆的鲁鲁修-程序员ITS301_mybatis批量插入返回list - 程序员ITS301

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值