【发布时间】:2021-09-24 07:43:02
【问题描述】:
调用run.db一次有什么区别:
val dbAction3 = for {
res1 <- dbAction1
res2 <- dbAction2(res1)
} yield res2
val res3 = db.run(dbAction3)
多次:
val res3 = for {
res1 <- db.run(dbAction1)
res2 <- db.run(dbAction2(res1))
} yield res2
据我了解,除非我们在第一个中使用transactionally,否则没有区别。
【问题讨论】:
-
这个问题缺少很多重要信息。请显示类型范围内可用的任何内容。具体来说,这些 db 操作是什么类型(或者您认为它们是),以及什么类型是 db.此代码是否编译,或者您在此处引用的代码?因为照原样,这段代码显然没有。在不了解预期范围内的更多信息的情况下,这个问题的信息太少,我自己无法弄清楚。
-
我不是说它可以编译。我试图从不必要的细节中抽象出真正的问题。我猜,按类型,你的意思是读像
select这样的查询,写像insert和update这样的查询。我们可以评估不同类型组合的问题。例如,两者都是读取查询,或者都是写入查询,或者其中一个被读取而另一个被写入。