如何在 slick 中找到查询的长度并将其用作布尔值?

How to find length of query in slick and use it as a boolean?

我们正在使用 Slick。我们有一个 table,其中有一些条目,我有一个键,我想用它来查询 table。我只需要一个布尔值就可以知道该键是否存在于某列 Y 的 table 中。

我知道密钥,我知道 Y 。但 Slick 真的让我用头撞墙。

这是我目前的做法:

val query = EventInfo.filter(_.id === 32323).map(u=>u.id).exists
val action = query.result
val results  = db.run( action)
results.onComplete(println)

确实打印:成功(真)

但我想在过程中使用这个布尔值,如果为真则调用方法 A,如果为假则调用方法 B。

我不明白如何将这个值提取到一个变量,然后在 onComplete 函数中使用它

也许最简单的解决方法是

import scala.concurrent.Await
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._

try {
  Await.result({
    results.map { 
      case true => println("method A")
      case false => println("method B")
    }
  }, 1 minute)
} finally db.close()