gpt4 book ai didi

java - 通过进行单个数据库调用来使用 ArrayList 更新表

转载 作者:行者123 更新时间:2023-12-01 21:51:27 25 4
gpt4 key购买 nike

我想根据 ArrayList<> 更新表中的多行下面在使用 Spring JPA 的单个数据库调用中。

CREATE TABLE phoneStatus (Status VARCHAR(1000) NOT NULL, Phone VARCHAR(100) NOT NULL)

[
{
"status": "Green",
"phone": "2099028090"
},
{
"status": "Red",
"phone": "3099036070"
}
]

方法查询 - UPDATE phoneStatus SET status=?1 WHERE phone=?2

操作 - list.foreach(object -> repo.method(x.getStatus(), x.getPhone());

由于多次数据库更新(~150),这导致性能滞后。

PS:如果我犯了错误,请纠正我的措辞/问题。

编辑

对于那些询问如何将事务发布到数据库的人,下面是 Spring JPA 标注。

@Transactional
@Modifying
@Query(value = "UPDATE phoneStatus SET status=?1 WHERE phone=?2", nativeQuery = true)
void updatePhoneStatus(String status, String phone);

最佳答案

听起来您正在使用 spring-data-jpa?尝试将batch_size属性设置为合理的值。您还可以找到其他与批处理相关的配置,以及比我在这里写的更好的文档。

spring.jpa.properties.hibernate.jdbc.batch_size=10

关于java - 通过进行单个数据库调用来使用 ArrayList 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com