使用带有光滑3的`firstOption`

时间:2015-06-04 10:06:12

标签: scala slick

我正在尝试运行.filter(_.id === 1).firstOption之类的查询,但编译器抱怨没有符号firstOption。这是在光滑3中删除?我可以用什么呢?

1 个答案:

答案 0 :(得分:12)

要在调用结果之前限制结果数,请使用take(num)。例如:

val result: Future[Option[Whatever]] = db.run((query.filter(_.id === 1).take(1)).result).map(_.headOption)

根据官方文档,上述声明归结为使用headOption结果方法。

val result: Future[Option[Whatever]] = db.run((query.filter(_.id === 1)).result.headOption)

query.result返回DBIOAction类型的对象。光滑中的动作是可以在数据库上执行的操作。通过将操作传递给db.run()db.stream()来完成实际执行。您可以在此处找到更详细的说明:http://slick.typesafe.com/doc/3.0.0/api/index.html#slick.dbio.DBIOAction