有些人重写CrudRepository的方法findAll来返回Stream(
java 8),但是我看到他们最终将Stream转换为List以便通过rest控制器发送它.他们为什么使用Stream?在这里使用Stream有什么好处?如果他们想要过滤记录,我认为可以更好地过滤DataBase.
解决方法
这已经在
Spring Data JPA中得到支持,看看
here;所以没有真正的优势来覆盖那些返回Stream.如果你真的想要Stream和它带来的一些潜在优势 – 使用Spring Data JPA提供的功能.
另外一个不同的方面是,在JPA Spec 2.2中,这可能是某些查询的默认返回类型. JPA接口Query和TypedQuery将获得一个名为getResultStream()的新方法.
因此,Spring Data将使用特定于特定提供程序的技术(如Hibernate或EclipseLink)来传输结果.
默认情况下,getResultStream只是一个list.stream实现,但是Hibernate已经用ScrollableResult覆盖了它.如果您需要处理非常大的结果集,这会更有效.