1

我正在尝试通过 Jdbi jdbc 连接到 vertica 以获得巨大的结果集。遵循 JDBI 文档并将其添加到 dao,

@SqlQuery("<query>")
@Mapper(ResultRow.StreamMapper.class)
@FetchSize(chunkSizeInRows)
public Iterable<List<Object>> getStreamingResultSet(@Define("query") String query);

但似乎它将整个数据加载到内存中而不是流式传输

在此处输入图像描述

4

1 回答 1

1

我一直在查看来自 JDBI 的流式传输结果集,并遇到了这个问题。答案在SQL 对象查询文档页面上:

因为该方法返回 ajava.util.Iterator它会延迟加载结果

所以在这种情况下,Iterable<List<Object>>应该是 a Iterator<List<Object>>(我假设 JDBI 可以将数据库行转换为 a List<Object>)。

于 2015-06-23T06:55:05.130 回答