java - 如何在 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 进行批量(多行)插入?
解决方案
推荐阅读
- javascript - 添加子视图时,React Native 父视图大小正在发生变化
- java - 在 Windows 7 中报告了缺少依赖项 POM,但在 Windows 10 中没有
- android - getActivity() 在处理程序中为 null
- spring - Spring Boot + Activiti
- c++ - 如何处理:“重复连接...”和“计时器不能从另一个线程停止...”
- javascript - 在 React 中正确创建全局变量
- database - Sybase ASE 15.7:创建触发器,以便在插入之前我想修改要插入的行
- react-native - React-native 在页面之间发送信息?
- c# - C# WinForms - 不相互交谈的表单
- android - Android:活动时更改材质 TextInputLayout 的背景颜色