使用 Hibernate 和 Spring 在 Java Stream 中处理数据库中的实体是否合适?

问题描述 投票:0回答:1

例如,我想使用 Spring Data JPA 从数据库中获取实体集合,修改它们并在数据库中更新:

repository.findAll().stream.map(e -> ...).forEach(e -> repository.save(e));

或者我想创建新实体并使用 Stream API 等将它们保存到数据库中...

最佳实践是什么? Stream API 与数据库连接会导致问题吗?

java spring hibernate spring-data java-stream
1个回答
0
投票

一次性更新所有实体比在循环内对数据库进行操作要好。所以而不是:

repository.findAll().stream.map(e -> ...).forEach(e -> repository.save(e));

你应该这样做:

List<Entity> entitiesModified = repository.findAll().stream.map(e -> ...)
                                          .collect(Collectors.toList());
repository.saveAll(entitiesModified);
© www.soinside.com 2019 - 2024. All rights reserved.