我有一个查询,该查询返回大量数据,我想使用获取大小将这些数据从postgres流到scala。我的代码看起来像这样
override def getFilteredData(filters: Seq[Filter]): StreamReadySQL[myObject] = {
sql""" QUERY
""".stripMargin
.fetchSize(2000)
.map(MyObject(_))
.iterator()
}
在其他班上我这样称呼它
val productPublisher: DatabasePublisher[RuleData] = {
DB readOnlyStream {
repositories.productRepository.getFilteredData(trigger.filters)
}
}
Source.fromPublisher(publisher).mapAsync(Parallelism) { batch =>
//do something
Future.successful(().asRight[ApplicationError])
}.runWith(Sink.head[Either[ApplicationError, Unit]])
使用此代码,上面的源将仅返回最后n个提取的条目,如何从流中获取可以迭代所有数据的迭代器?