通过进行单个数据库调用使用ArrayList更新表 编辑

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

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);
zhujun1918 回答:通过进行单个数据库调用使用ArrayList更新表 编辑

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

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

本文链接:https://www.f2er.com/3140042.html

大家都在问