【发布时间】:2020-12-28 19:55:11
【问题描述】:
我有以下理解。它应该删除我数据库中的一行,但前提是该行存在(因此,如果给定 id 有新闻):
override def deleteNews(newsId: Long): Int = {
val getAndDelete = for {
Some(news) <- newsDao.get(newsId)// returns Future[Option[News]]
delete <- newsDao.remove(news) // returns Future[Int]
} yield delete
Await.result(getAndDelete, responseTimeout)
}
但是当给定的 id 没有元素时,我不知道如何处理这种情况。目前抛出此异常:
Unexpected exception[NoSuchElementException: Future.filter predicate is not satisfied]
我希望我的方法不会太糟糕:D
我对 scala 比较陌生。
【问题讨论】:
-
返回类型
Int表示什么? -
受数据库查询影响的行
-
应该返回
Future[Into]并从那里编写,而不是等待
标签: scala future optional for-comprehension