我一直在阅读Play文档中的Streaming results。我期望找到的是基于结果创建Scala Stream
的方法,所以如果我创建一个返回需要解析的10,000行的运行,它将分批解析它们(例如,一次100个)或者只是解析第一个,并解析其余的需求(所以,Stream
)。Anorm(Play Scala)支持流媒体的优势是什么?
我发现(从我的理解,我可能是完全错误的)基本上是一个一个地解析结果的方法,但最后它会创建一个包含所有解析结果的列表(如果有像这样,100本书)。让我们从文档的例子:
val books: Either[List[Throwable], List[String]] =
SQL("Select name from Books").foldWhile(List[String]()) { (list, row) =>
if (list.size == 100) (list -> false) // stop with `list`
else (list := row[String]("name")) -> true // continue with one more name
}
哪些优点在于提供了一个基本的实现,例如:
val books: List[String] = SQL("Select name from Books").as(str("name")) // please ignore possible syntax errors, hopefully understandable still