List mulList = new ArrayList();
for (int i = 0; i < list.size(); i++) {
TestDto dto = objectMapper.convertValue(list.get(i), TestDto.class);
mulList.add(dto);
if (i % 1000 == 0 || list.size() - 1 == i) { // 1000건씩 insert
Map<String, Object> map = new HashMap<String, Object>();
map.put("list", mulList);
idxcin023cMapper.insertListMatUplByPk(map);
mulList.clear();
}
}
<update id="insertListMatUplByPk" parameterType="java.util.Map">
<selectKey resultType="Integer" keyProperty="matUplId" order="BEFORE">
SELECT NVL(MAX(MAT_UPL_ID),0) + 1 AS MAT_UPL_ID
FROM TEST_TABLE
</selectKey>
INSERT ALL
<foreach collection="list" item="item" index="index" separator=" ">
INTO TEST_TABLE (
MAT_UPL_ID
, BASE_YMD
, INV_NO
, ORD_NO
, BRSH_CD
, MAT_TYP_CD
, RSP_EMPNO
<include refid="com.lottegl.alps.business.persistence.CmmMapper.insertColumn" />
)
VALUES (
TO_NUMBER(#{matUplId}) + TO_NUMBER(#{index})
, #{item.baseYmd}
, #{item.invNo}
, #{item.ordNo}
, #{item.brshCd}
, #{item.matTypCd}
, #{item.rspEmpno}
<include refid="com.lottegl.alps.business.persistence.CmmMapper.insertColumnParam" />
)
</foreach>
SELECT * FROM DUAL
</update>