使用带有光滑3的`firstOption`

sim*_*mao 7 scala slick

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

Rom*_*man 12

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

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

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

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

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