通过对Query的投影进行分组,在Slick中生成超过22列

时间:2014-01-03 09:12:12

标签: scala slick

请考虑以下方案

1)表1包含16列 2)表2包含18列

我需要从这些表中选择所有列,因为列总数(34)超过22(对元组字段的约束),我使用如下所示的投影将字段映射到案例类对象。是否有其他方法可以在以下要求的背景下实现相同的目标?

我还希望在34个选定的列上使用相同数量的列来应用group by,或者根据用户输入将一个或两个更少的组应用,即分组32列,并在剩余的两列上应用总和。按代码分组如下所示

        implicit s =>
            val query = for
            {
              (t1, t2) <- Table1 leftJoin Table2 on
                (_.A1 === _.A2)
            }yield(
              (t1.A1~t1.A2........~t1.A16)<>(Table1Rec,Table1Rec.unapply _)
              (t2.A1~t2.A2........~t2.A18)<>(Table2Rec,Table2Rec.unapply _)
            )

            query.groupBy(tt=>(tt._1,tt._2)).map{
              case ttt => ????
            }

但是,我没有通过使用映射投影获得正确的语法。有人可以提供有关实现这一目标的正确方法的见解。此场景的早期帖子没有提供解决方案,因此以简化示例发布。

0 个答案:

没有答案