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