问题

<insert id="insertListIfNotExists" useGeneratedKeys="true" keyProperty="id">
        INSERT IGNORE INTO
            `tag` (name, create_time)
        VALUES
            <foreach collection="list" item="item" separator=",">
                (#{item.name}, #{item.createTime})
            </foreach>
    </insert>

useGeneratedKeys与INSERT IGNORE配合后,若插入顺序是

id:1 name: name1
id: null name: name2
id: null name: name3

返回的id会变成

id: 2 name: name1
id: 3 name: name2
id: null name: name3

解决方法

请单个进行插入