Java 我如何流<;GroupJson>;以及使用JPA的整个数据库?

Java 我如何流<;GroupJson>;以及使用JPA的整个数据库?,java,hibernate,spring-data-jpa,Java,Hibernate,Spring Data Jpa,我试图通过SpringJPA在整个数据库(大约22000条记录)中传输数据。使用FindAll()方法,我可以将它们放入内存,但它们会立即全部放入内存。我想用流媒体传送它们 我已经试过了 我的目标是: @Entity @Table(name = "GroupJson") public class GroupJson { @Id private String id; private String hash; private String jsonData;

我试图通过SpringJPA在整个数据库(大约22000条记录)中传输数据。使用FindAll()方法,我可以将它们放入内存,但它们会立即全部放入内存。我想用流媒体传送它们

我已经试过了

我的目标是:

@Entity
@Table(name = "GroupJson")
public class GroupJson {

    @Id
    private String id;

    private String hash;
    private String jsonData;
    private ZonedDateTime lastUpdatedTimeStamp;
...
我是否可以使用另一个存储库来执行此操作?我只能找到积垢。或者,还有其他一些神奇的JPA关键词有效吗?我使用的是Spring boot 1.5.9,我在别处传输数据,但我使用的是自定义调用:

Stream<Authority> findByPartitionKey(Long partitionKey);
streamfindbypartitionkey(长分区键);

您也可以使用查询

@Query("select gj from Customer gj")
Stream<GroupJson> streamAll();
@Query(“从客户gj中选择gj”)
streamAll();
您必须在方法声明中包含“By”部分,以使Spring数据能够解析您的方法名称。这就是为什么你会犯奇怪的错误。Spring数据将streamAll解释为实体中的属性

@Repository
public interface GroupJsonRepository extends CrudRepository<GroupJson, String> {
    Stream<GroupJson> streamAllBy();
}
@存储库
公共接口GroupJsonRepository扩展了Crudepository{
Stream streamAllBy();
}

如果不想加载所有数据,可以使用分页。
Iterable findAll()
已在
crudepository
@Query("select gj from Customer gj")
Stream<GroupJson> streamAll();
@Repository
public interface GroupJsonRepository extends CrudRepository<GroupJson, String> {
    Stream<GroupJson> streamAllBy();
}