1

我有一个表,其中有一IntTIME

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

表映射到自定义类型。我想找到一个最大时间值,即执行一个简单的聚合。文档中的示例似乎很简单:

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

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

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

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

4

1 回答 1

3

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

val q1 = q.min.run

应该返回一个Option[Int]然后你可以getgetOrElse

于 2014-05-23T14:17:34.143 回答