gpt4 book ai didi

spring - Stream 和 Spring Data 的优点

转载 作者:行者123 更新时间:2023-12-02 05:41:41 25 4
gpt4 key购买 nike

有些人重写 CrudRepository 的 findAll 方法以返回 Stream (java 8),但我看到他们最终将 Stream 转换为 List,以便通过剩余 Controller 发送它。他们为什么使用 Stream ?在这里使用 Stream 有什么好处?如果他们想过滤记录,我认为在数据库上过滤会更好。

最佳答案

Spring Data JPA 已支持此功能,请查看 here ;所以重写那些返回Stream并没有真正的优势。如果您确实想要一个 Stream 以及它带来的一些潜在优势 - 使用 Spring Data JPA 已经提供的功能。

另一个不同的方面是,在 JPA Spec 2.2 中,这可能是某些查询的默认返回类型。 JPA 接口(interface) QueryTypedQuery 将获得一个名为 getResultStream() 的新方法。

因此 Spring Data 将使用特定于特定提供程序的技术,例如 HibernateEclipseLink 来流式传输结果。

默认情况下,getResultStream 只是一个 list.stream 实现,但 Hibernate 已经用 ScrollableResult 覆盖了它。如果您需要处理非常大的结果集,这会更有效。

关于spring - Stream 和 Spring Data 的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44642556/

25 4 0