ストリームパイプラインでのデータベースへの保存
オラクルのウェブサイトのドキュメントによると: ストリーム操作に対する動作パラメータの副作用は、一般に推奨されません。これらは、無意識の要件の意図しない違反や、その他のスレッドセーフティの危険につながることが多いためです。 これには、ストリームの要素をデータベースに保存することも含まれますか? 次の(疑似)コードを想像してみてください。 public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { return cars.stream() .map(this::saveCar) .collect(Collectors.toList()); } この実装に対抗する望ましくない影響は何ですか? public SavedCar saveCar(Car car) { SavedCar savedCar = this.getDb().save(car); return savedCar; } public List<SavedCars> saveCars(List<Car> cars) { List<SavedCars> savedCars = new ArrayList<>(); for …