本机查询支持 SQL Server 的 Spring 数据 jpa 流

Posted

技术标签:

【中文标题】本机查询支持 SQL Server 的 Spring 数据 jpa 流【英文标题】:Native queries support Spring data jpa stream for SQL Server 【发布时间】:2020-08-04 17:36:57 【问题描述】:

我们需要使用 Spring data jpa 从 SQL Server 检索数据。

由于我们有数百万条记录,我们无法一次请求加载所有数据。是否可以使用本机查询进行流式传输?

【问题讨论】:

【参考方案1】:

是的,您可以让您的查询方法在 Spring Data JPA 中返回一个 Stream 类型,并且仍然使用本机查询:

@Query(value = "YOUR QUERY", nativeQuery = true)
Stream<YourRecordType> findAllRecords();

按照 Spring Data JPA 文档中的建议,一旦您完成使用 Stream 资源,请记住关闭它:

流可能会包装底层数据存储特定的资源 因此,必须在使用后关闭。您可以手动 使用 close() 方法或使用 Java 7 关闭 Stream try-with-resources 块 (...)

这里是相关的docs 和example。

【讨论】:

我的实际问题是当我使用本机查询从 sql server 检索时是否支持 是的,如果您使用 Hibernate 作为您的 JPA 提供程序,您可以从 SQL 服务器检索(包括本机查询)。 Here 是 Hibernate 支持的数据库方言的完整列表。 感谢您的回复..这回答了我的问题

以上是关于本机查询支持 SQL Server 的 Spring 数据 jpa 流的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft SQL Server查询分析器不能与本机连接?

SQL Server迁移本机表数据信息

Doctrine Orm 2 使用本机 SQL 的递归查询

如何用sqlserver 2000事件查探器查询sql

如果我没有安装本机客户端,Visual Studio 2010如何连接到SQL Server 2008?

最新的 Spring Data/Hibernate 在本机查询中不支持 java.time.LocalDate?