我正在尝试通过Spring JPA流式传输整个数据库(约22,000条记录)。使用FindAll()方法可以将它们插入,但是它们都被立即带入内存。我想流式传输它们。

我试过streamAll():

@Repository
public interface GroupJsonRepository extends CrudRepository<GroupJson, String> {
    Stream<GroupJson> streamAll();
}


但我得到一个奇怪的错误:

No property streamAll found for type GroupJson!


我的对象是:

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

    @Id
    private String id;

    private String hash;
    private String jsonData;
    private ZonedDateTime lastUpdatedTimeStamp;
...


我可以使用另一个存储库吗?我只能找到CrudRepository。或者,还有其他一些神奇的JPA关键字有效吗?我正在使用Spring Boot 1.5.9,并且正在其他地方传输数据,但是我正在使用自定义调用:

Stream<Authority> findByPartitionKey(Long partitionKey);

最佳答案

您也可以使用查询,

@Query("select gj from Customer gj")
Stream<GroupJson> streamAll();

10-08 15:20