scala - Slick 3.0 删除和返回值

标签 scala slick-3.0

如果我在插入新行时想要一个返回值,我可以做类似的事情

val insertQuery = myTable returning myTable.map(_.id) += SomeData(someString)

删除时如何达到同样的效果?

我试过
val deleteQuery = myTable filter (_.id ===id) returning myTable.map(_.someColumn) delete

但显然这不能编译。

我可以求助于for理解,但我想知道是否有更短的方法。

最佳答案

我所知道的最好的方法是执行以下操作:

val query = db.filter(....)
val action = for {
   results <- query.result
   _ <- query.delete
} yield results
db.run(action.withTransactionIsolation(TransactionIsolation.RepeatableRead))

希望它更短。

关于scala - Slick 3.0 删除和返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123804/

相关文章:

akka - 在 Slick 事务中处理 Akka 流

scala - 为什么即使用于 sum 的列是强制列,slick 中的分组方法 sum 也会返回 Option?

scala - 带有Scala插件的IntelliJ IDEA找不到scala.concurrent

scala - KTable 应该发出的事件

java - 如何在 Java 代码中等待 scala Future

scala - 将单例对象编码为惰性值

scala - Slick 3 插入不插入但没有错误

java - 分几步写入 HDFS 文件的效率如何?

scala - Scala 中的事务方法 Play with Slick(可能类似于 Spring @Transactional?)

oracle - 如何使用 slick 3.0.1 连接 Oracle DB?