Spring JPA的Iterable结果中的Spliterators在parallelStream中使用安全吗



类似于OneToMany集合上的parallelStreams安全吗?但我的问题是针对Spring JPA Repository查询的结果,例如

public interface Students extends JpaRepository<Student, UUID> {
@EntityGraph("Student.withProgramAndSchedule")
@Query("from Student s")
Iterable<Student> findAllWithProgramAndSchedule();
}

我可以安全地将其与平行线一起使用吗?例如

StreamSupport.stream(students.findAllWithProgramAndSchedule().spliterator(), true)

JPA实体管理器及其管理的实体不是线程安全的。

一种思考方式是students.findAllWithProgramAndSchedule()可能会触发延迟加载。在后台,这将使用JDBC连接,该连接本身不是线程安全的,因此students.findAllWithProgramAndSchedule()不可能是线程安全的。

最新更新