例如,我想使用 Spring Data JPA 从数据库中获取实体集合,修改它们并在数据库中更新:
repository.findAll().stream.map(e -> ...).forEach(e -> repository.save(e));
或者我想创建新实体并使用 Stream API 等将它们保存到数据库中...
最佳实践是什么? Stream API 与数据库连接会导致问题吗?
一次性更新所有实体比在循环内对数据库进行操作要好。所以而不是:
repository.findAll().stream.map(e -> ...).forEach(e -> repository.save(e));
你应该这样做:
List<Entity> entitiesModified = repository.findAll().stream.map(e -> ...)
.collect(Collectors.toList());
repository.saveAll(entitiesModified);