当前问题与next one相关,但现在我需要从数据库中读取数据而不是插入数据。
我接下来有三个案例类:
case class A (id: Long, bList: List[B])
case class B (id: Long, aId: cList: List[C])
case class C (id: Long, bId: Long)
使用两个leftJoin
函数和incomingAId
进行查询以过滤aTable结果:
val query = (for {
((aResult,bResult),cResult) <- aTable.filter(_.id === incomigAId)
.joinLeft(bTable).on(_.id === _.aId)
.joinLeft(cTable).on(_._2.map(_.id) === _.bId)
} yield ((aResult,bResult),cResult)).result.transactionally
下一个查询有效,结果看起来有效,但是对于案例类来说,它并不容易处理。此外,executionResult
具有Seq[Nothing]
类型和映射过程需要类似的内容:
database.run(query).map{ executionResult =>
executionResult.map { vectorElement: [Tuple2[Tuple2[A, Option[B]], Option[C]]]
...
}
}
有没有正确的方法来阻止Seq [Nothing](查询中的更改)? 或者,如果查询结果类型正常,您能否分享解决方案如何将其映射到上面的案例类?
答案 0 :(得分:0)
现在我正在使用下一个解决方案,但我想可以优化某些代码(例如 EventLogPermission eventLogPermission = new EventLogPermission(EventLogPermissionAccess.Administer, ".");
eventLogPermission.PermitOnly();
替换其他内容)。
groupBy