如何在 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()
我们正在使用 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()