Slick 2聚合 - 如何获得标量结果?

时间:2014-05-23 13:47:03

标签: scala slick slick-2.0

我的表格中包含IntTIME

def time = column[Int]("TIME")

table is mapped到自定义类型。我想找到一个最大时间值,即执行一个简单的聚合。 The example in the documentation似乎很容易:

val q = coffees.map(_.price)
val q1 = q.min
val q2 = q.max

然而,当我这样做时,q1和q2的类型是Column[Option[Int]]。我可以对此执行getgetOrElse以获得Column[Int]类型的结果(即使这对我来说有点令人惊讶 - getColumn的成员},或者是从Option[Int]转换为Int,然后再次包装到Column?为什么?),但我无法使用标量值,当我尝试将其分配给Int时,I收到错误消息:

type mismatch;
 found   : scala.slick.lifted.Column[Int]
 required: Int

如何从聚合查询中获取scala值?

1 个答案:

答案 0 :(得分:2)

我的猜测是你没有调用调用者,这就是你获得Column对象的原因。试试这个:

val q1 = q.min.run

应该返回Option[Int],然后您可以getgetOrElse