使用批量插入时,希望插入之后获得插入的数据的id,但是发现id是null
原始的内容:
mapper定义
void batchInsert(@Param("itemList") List<Model> itemList);
sql语句
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
INSERT INTO t_xxx
(key1,key2)
VALUES
<foreach collection="itemList" item="item" separator=",">
(#{item.key1} , #{item.key2})
</foreach>
</insert>
解决办法
通过实验发现,批量插入时候@Param的参数名称要用"list"才能生效,修改之后就可以拿到insert后的id了