【发布时间】:2016-02-14 00:04:45
【问题描述】:
我是 Scala 的新手,我想问一个简单的问题。
我有一个返回Future[Option[T]的函数
def findOne(query: JsObject)(implicit reader: Reads[T]): Future[Option[T]] = {
Logger.debug(s"Finding one: [collection=$collectionName, query=$query]")
collection.find(query).one[T]
}
我必须返回Future[Option[PasswordInfo]]。
我试过了:
def find(loginInfo: LoginInfo): Future[Option[PasswordInfo]] = {
val result = find(Json.obj("loginInfo.providerID" -> loginInfo.providerID, "loginInfo.providerKey" -> loginInfo.providerKey))
result.onSuccess{
case something => Future.successful(Some(something).getOrElse(None))
}
}
我的班级:
case class PersistentPasswordInfo(
loginInfo: LoginInfo,
authInfo: PasswordInfo
) extends TemporalModel {
override var created: Option[DateTime] = _
override var updated: Option[DateTime] = _
override var _id: Option[BSONObjectID] = _
}
【问题讨论】:
-
Future.successful(Some(something).getOrElse(None))是错误的。Future.successful(Some(something))应该足够了,只要是 PasswordInfo -
有些东西是 PersistentPasswordInfo,我需要
authInfo,它在我的课堂内 -
Future.successful(Some(something.authInfo))? -
无法解析.authInfo
-
在包含 findOne 函数的类上定义的 T 是什么?
标签: mongodb scala silhouette