作者:lnssm | 来源:互联网 | 2023-01-31 18:52
有些人重写CrudRepository的方法findAll来返回Stream(java 8),但是我看到他们最终将Stream转换为List以便通过rest控制器发送它.他们为什么要使用Stream?在这里使用Stream有什么好处?如果他们想要过滤记录,我认为可以更好地过滤DataBase.
1> Eugene..:
这已经在Spring Data JPA中得到支持,请看这里 ; 所以重写那些没有真正的优势Stream
.如果你真的想要它带来的Stream
一些潜在优势 - 使用Spring Data JPA提供的功能.
另外一个不同的方面是,JPA Spec 2.2
这可能是某些查询的默认返回类型.JPA接口Query
,并TypedQuery
会得到一个所谓的新方法getResultStream()
.
所以,春天的数据将使用特定于某个供应商的技术,如Hibernate
或EclipseLink
以流的结果.
默认情况下,getResultStream
它只是一个list.stream
实现,但Hibernate
已经覆盖了ScrollableResult
.如果您需要处理非常大的结果集,这会更有效.