如果在循环中使用,@transactional会导致jdbctemplate的批量更新吗?

ezykj2lf  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(316)

我想在postgre中使用springs jdbc模板进行批量更新。
但是,我很好奇是否真的需要使用jdbctemplate.batchupdate()调用。我在几个地方读到,如果没有正确实施,它们的速度会慢一些。
在循环中插入的方法上添加@transactional会实现批处理更新的相同功能吗?
如果下面的方法一次插入一条记录,是从一个事务循环中调用的,如图所示,这会导致更新以批处理的方式发生吗?

public void insertProdPayload(String Prod_Name, LocalDate sourceDt, String exchangeId, int status, String payload) {
    int ret = jdbcTemplate
            .update(DBQueryConstants.INSERT_PAYLOAD, Prod_Name, sourceDt, exId, status, payload);

}

@Override
@Transactional
public void ingestListOfPayloads(List<Message<MessageMetricRecord>> payloadMessages) {
    for (Message<Payload> message : payloadMessages) {
    insertProdPayload(message.getProdName,message.getDate(),message.getExchangeID(),message.getStatus(),message.getPayload());
}
}

jdbc模板的默认配置为springboot2,postgresql版本为9.6。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题