我试图有一个函数返回更新的对象之后,数据库现在在查询上运行更新方法,但我无法弄清楚如何成功返回对象。这是我用我发现的例子写的函数,但是我想扩展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(_ =>())
}
你可能想看看[这个问题及其答案](http://stackoverflow.com/questions/30212785/slick-3-0-update-columns-in-a-table-and-return-whole -table-object) – Shadowlands
作为一个快速的解决方案,你可以在修改后的值上复制cat实体,只有在操作成功时才返回。 –
我不认为复制输入将适用于通过触发器更新的字段(lastUpdated timestamp等)。这对Postgresql数据库非常常见。 – Nick