java - Spring boot Stream API 大数据

标签 java spring spring-data-jpa spring-data

我将 JPA 与返回大约 13k 寄存器的 native 查询一起使用。我想使用 Java 8 中的 Stream API,但结果没有出现。

我无法分页,因为结果会填充一个组合框

我的存储库发送流 我添加了 @Transactional(readOnly = true) 以使其工作

@Query(value = "select * from mytable", native = true)
Stream<MyTable> getTableStream()
@Transactional(readOnly = true)
public Stream<MyTable> getTableStream() {
    return repository.getTableStream()
}
@GetMapping(value = "/table", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
@Transactional(readOnly = true)
public ResponseEntity<Stream<MyTable>> getMailingClient() {
    Stream<MyTable> body = service.getTableStream();
    return ResponseEntity.ok(body);
}

我找到的关于流的所有链接和资源都没有显示使用 Spring rest API 实现返回 JSON。

我的前端是 Angular 6,我得到的最近的是一个没有结果的自定义对象

最佳答案

将所有 13k 记录加载到组合框中听起来是一个非常慢的解决方案。我建议实现基于 like 查询的搜索。像这样:

@Query("SELECT * FROM mytable WHERE name like ':name%'")
Stream<MyTable> getTableStream(@Param("name") String name);

但如果您真的想加载所有记录,您可以使用 java.util.Collectionjava.util.List 而不是流。

Collection<MyTable> getTableStream();

关于java - Spring boot Stream API 大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012935/

相关文章:

java - 我可以在 Notification Click 上上课吗?

java - Spring-data-jpa NativeQuery 具有两个输出参数

java - Spring LocalResolver 基于查询参数 'lang=en' ?

java - 一个集合中的spring data jpa查询值

java - 仅使用月份的 java.util.Date 类型的 Spring Boot + Spring Data JPA 查询

java - 悲观锁无法使用 spring data jpa

java - 连接到远程 JMX 代理 ActiveMQ Artemis 时出错

java - 尝试使用 maven 使用 GPG 自动签署文件时出错

java - Broadleaf - 扩展工作流程中的自定义 Activity 问题

spring - 将 Spring MVC 中的静态 .json 文件作为资源返回