// productNoList为总共的对象集合,按照步长为1000截取总集合,分别塞入中
ListSplitter<ProcessInspectProductNoDesc> splitter = new ListSplitter<>(new ArrayList<>(productNoList), 1000);
for (List<ProcessInspectProductNoDesc> list : splitter) {
processInspectProductNumService.saveAndUpdateBatch(list);
}
// Mapper.xml的sql代码
<insert id="saveAndUpdateBatch" parameterType="com.ever.business.process.inspect.domain.ProcessInspectProductNoDesc">
INSERT INTO process_inspect_product_no_desc
(
ID, is_removed, VERSION,gmt_create,creator_id,creator_name,company_id
)
VALUES
<foreach collection="params" item="param" separator=",">
(
#{param.id},#{param.isRemoved},#{param.version},#{param.gmtCreate}, #{param.creatorId},#{param.creatorName},#{param.companyId}
)
</foreach>
ON CONFLICT ( ID ) DO
UPDATE
SET gmt_modified= EXCLUDED.gmt_modified,modified_user_id= EXCLUDED.modified_user_id,
modified_user_name=EXCLUDED.modified_user_name,VERSION=EXCLUDED.VERSION
</insert>