【发布时间】:2015-09-14 20:18:24
【问题描述】:
我正在尝试将一个案例类隐式转换为另一个案例类,但无法使代码正常工作。我的编辑告诉我 Seq[LegacyPhase] 没有转换为预期的 Seq[Phase] 的错误。谁能指出我的方向?提前致谢!
implicit def legacyToDashboardBrand(brand: LegacyDashboardBrand)(implicit session: Session): DashboardBrand = {
val phaseSeq: Seq[Phase] = (for { phaseDataset <- dashboardPhasesQ if phaseDataset.brandId === brand.id
} yield phaseDataset).list.toSeq
DashboardBrand(id = brand.id, projectId = brand.projectId, name = brand.name, currentPhase = brand.currentPhase, phases = phaseSeq)
}
implicit def legacyToDashboardPhase(phase: LegacyPhase): Phase = {
Phase(id = phase.id, brandId = phase.brandId, title = phase.title, steps = Seq())
}
编辑:如果我在第一个隐式转换定义中执行第二个隐式转换行,它会起作用。
implicit def legacyToDashboardBrand(brand: LegacyDashboardBrand)(implicit session: Session): DashboardBrand = {
val legacyPhaseSeq = (for {
phaseDataset <- dashboardPhasesQ if phaseDataset.brandId === brand.id
} yield phaseDataset).list.toSeq
val phaseSeq: Seq[Phase] = legacyPhaseSeq.map(phase =>
Phase(id = phase.id, brandId = phase.brandId, title = phase.title, steps = Seq())
)
DashboardBrand(id = brand.id, projectId = brand.projectId, name = brand.name, currentPhase = brand.currentPhase, phases = phaseSeq)
}
【问题讨论】:
-
你能告诉我们确切的错误吗?
dashboardPhasesQ是什么? -
嘿,彼得。 dashboardPhasesQ 是一个表查询。 val dashboardPhasesQ = TableQuery[LegacyPhaseTable]