【发布时间】:2021-02-28 00:17:00
【问题描述】:
假设我有两个案例类C1 和C2,它们都继承自特征T。我有两个Query0 对象,由这些案例类Query0[C1] 和Query0[C2] 参数化。目标是当我执行这些查询时,我想获得一个包含这两个查询结果的List[T]。现在我可以很好地处理单独的事务了。
def executeQuery[A <: T](query: Query0[A]): List[A]=
transactor.use { xa => query.stream.compile.toList.transact(xa) }.unsafeRunSync
val query1: Query0[C1] = generateQuery1
val query2: Query0[C2] = generateQuery2
val results: List[T] = executeQuery(query1) ++ executeQuery(query2)
问题是我使用 BigQuery 作为数据库后端,并且事务有很多与之相关的开销。我希望在一个事务中执行这两个查询并让它返回一个 List[T] 对象。有没有办法做到这一点?
【问题讨论】:
标签: scala scala-cats doobie