首页 > 解决方案 > 如何在 spring-data-jpa 1.x 中执行多插入

问题描述

我在我的项目中使用 spring-data-jpa 1.x 并且有一个批量插入场景,例如:

List<Entity> entities = ...;
entities.forEach(repository::save);

但是我有数百万个实体要插入,并且由于数据库连接延迟而需要很长时间。我需要类似的东西:

repository.saveAll(entities);

加快我的插入速度。

spring-data-jpa:1.11.23.RELEASE目前最新版本的spring-data-jpa 1.x,还没有saveAll().

=== 更新 ===

在 spring-data-jpa 1.x 中,方法名称是save()

<S extends T> List<S> save(Iterable<S> entities)

=== 更新-2 ===

仅仅使用save()(spring-data-jpa 1.x) 或saveAll()(spring-data-jpa 2.x) 不能让 hibernate 生成像INSERT INTO table VALUES (?, ?, ...), (?, ?, ...), .... 这是另一个主题,请参阅:M. Deinum 和 Marc Ströbel 的评论,或如何使用 JpaRepository 进行批量(多行)插入?

标签: javaspringspring-data-jpabulkinsert

解决方案


推荐阅读