我有下面的代码返回Future[Option[Password]]
db.run(passwords.filter {
x => x.providerID === loginInfo.providerID && x.providerKey === loginInfo.providerKey
}.result.headOption)
我想要做的是在下面的伪代码中:
if above query returns no results
do nothing
else
return new PasswordInfo(abovequeryresult.hasher, abovequeryresult.password, abovequeryresult.salt)
我是 Scala 新手,对此一无所知。尝试flatMap
在下面的示例中使用,但flatMap
上面的签名db.run()
不同。
find(loginInfo).flatMap {
case Some(_) => update(loginInfo, authInfo)
case None => add(loginInfo, authInfo)
}
我正在使用 Play Slick 版本 1.1.1