我需要针对这种情况的帮助。 我必须在表 A 中插入多条记录,在表 B 中插入一条记录。我需要在单个事务中插入所有这些记录,但还需要为每个 DBAction 获取单独的结果
val tableAInserts:Seq[ProfileAction] = Seq(insertAction1TableA, insertAction2TableA, insertAction3TableA, ...)
val tableBInsert:ProfileAction = singleInsertProfileActionTableB
val allActions = Seq(tableAInserts) ++ tableBInsert
db.run(DBIO.sequence(allActions).transactionally)
所以我需要知道分别对 tableA 和 tableB 进行了多少次插入 这可能吗? 感谢您的指导。
你可以尝试使用for-complexion:
val tableA = TableQuery[TableA]
val tableB = TableQuery[TableB]
val tableAInserts: DBIO[Option[Int]] = tableA ++= Seq(...)
val tableBInsert: DBIO[Int] = tableB += (...)
val res: DBIO[(Option[Int], Int)] = (for {
optN <- tableAInserts
m <- tableBInsert
} yield (optN, m)).transactionally
val fut: Future[(Option[Int], Int)] = db.run(res)