假设我有两个案例类C1
,C2
每个类都继承自 trait 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] 对象。有没有办法做到这一点?