gpt4 book ai didi

scala - Slick update 返回更新后的对象

转载 作者:行者123 更新时间:2023-12-01 09:34:12 25 4
gpt4 key购买 nike

在 db 现在对查询运行更新方法后,我试图让函数返回更新的对象,但我不知道如何成功返回对象。这是我使用找到的示例编写的函数,但我想扩展 q.update(cat) 以返回 Future[Cat]。

def update(id: Long, cat: Cat): Future[Unit] = db.run {
val q = for { c <- cats if c.id === id } yield c
q.update(cat).map(_ => ())
}

最佳答案

您应该尝试以下操作:

def update(id: Long, cat: Cat): Future[Option[Cat]] = db.run {
cats.filter(_.id === id).update(cat).map {
case 0 => None
case _ => Some(cat)
}
}

你应该返回一个 Future[Option[Cat]]而不是 Future[Cat] ,因为提供 ID 的猫可能不存在(然后 update 方法返回 0 值)。违反完整性约束将导致 FailureFuture .

关于scala - Slick update 返回更新后的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com