【发布时间】:2015-10-08 09:23:07
【问题描述】:
在迁移到 play 2.4 时,我注意到以下几点:
1/apply 在 SqlQuery 上已弃用 - 好的 - 我查看了提供的实现:
def go(c: Option[Cursor], s: Stream[Row]): Stream[Row] = c match {
case Some(cursor) => go(cursor.next, s :+ cursor.row)
case _ => s
}
这不是将每个元素附加到时间与流大小成正比的 Stream 吗?例如,那最终不是 n2 吗?我认为以前的实现使用了缺点......
2/SqlQuery("qry") 曾经有办法不解析查询 - 这似乎已被删除
我有一个经常执行查询的用例(例如 1000qps)并且我无法缓存一次:它看起来像 select X,Y,Y from dbname.db - 所以没有可绑定的数据库名称语句。对于大型查询,事实证明语句解析器有点慢 - 有没有办法明确地说:我不需要解析该查询?
3/ResultSetParser 已完全私有化 - 我有一个 util 函数,它提供:
def vector[A](p: RowParser[A]): ResultSetParser[Vector[A]] ...
因为我更喜欢 Vector - 我将它与 SQL("...").as 一起使用 关于如何更换的任何建议? withResult 可能吗?
【问题讨论】:
-
您可以在线找到迁移文档:playframework.com/documentation/2.4.x/Anorm
-
请分享您对迁移的发现 - 我想很多人都会感兴趣
标签: playframework anorm