从 Scala 中的理解创建嵌套对象

Create a nested objects from for-comprehension in Scala

我有一个案例 class 正在根据一些数据库操作进行实例化:

case class FullFight(fight: FightsRow, firstBoxer: BoxersRow,
    secondBoxer: BoxersRow, bookiesOdds: Seq[BookiesOddsRow])

val tupledJoin = for {
    f <- Fights
    b1 <- Boxers if f.firstBoxerId === b1.id
    b2 <- Boxers if f.secondBoxerId === b2.id
} yield (f, b1, b2)

db.run(tupledJoin.result).map(_.map(FullFight.tupled))

问题是我不想在此查询中指定任何 bookiesOdds(它们在其他查询中填写)。相反,我想创建一个包含空序列 Seq[BookiesOddsRow] 的元组 tupledJoin 来创建我的 case class' 对象。有什么方法可以将其混合在理解循环中吗?我想我需要这样的东西:

val seq: Seq[BookiesOddsRow] = Nil

val tupledJoin = for {
    f <- Fights
    b1 <- Boxers if f.firstBoxerId === b1.id
    b2 <- Boxers if f.secondBoxerId === b2.id
} yield (f, b1, b2, seq)

这可能吗?如何正确实施?

此致

我认为您只能在 for comprehension 中使用 DB 操作。 你可以试试这个(未测试):

val tupledJoin = for {
    f <- Fights
    b1 <- Boxers if f.firstBoxerId === b1.id
    b2 <- Boxers if f.secondBoxerId === b2.id
    bookiesOdds <- DBIOAction.successful(Seq())
} yield (f, b1, b2, bookiesOdds)