【问题标题】:Scala Slick ManyToMany returnScala Slick 多对多返回
【发布时间】:2013-11-21 09:55:54
【问题描述】:

目前我正在尝试使用 Scala 和 Slick 发出多对多请求。

效果非常好,但是数据排序不好

我像最后一个例子一样提出请求:ForeignKeyTest

返回的数据是包含元组的列表或集合。

List((Object1, Object2-1), (Object1, Object2-2), (Object1, Object2-3), etc...)

这不是很好,因为我总是有 Object1 的开销

我想要更多类似的东西:

List(Object1, Seq[Object2-1, Object2-2, Object2-3])

但我是一个 scala 初学者,我认为我不能用 yield 玩那么多?有没有办法这样做还是我需要在查询后更改输出?

【问题讨论】:

    标签: scala playframework-2.0 slick


    【解决方案1】:

    据我所知,slick 不能返回包含列表的列表。 但是,您可以将结果转换为更有用的东西,如下所示:

    val listOfTuples: List[A,B] = List((a1, b1), (a1, b2), (a1, b3), (a2, b4))
    val map : Map[A,List[B]] = listofTuples.groupBy(_._1).mapValues(_.map(_._2))
    

    结果map 将等于以下内容

    Map( a1 -> List(b1,b2,b3),
      a2 -> List(b4))
    

    【讨论】:

    • 谢谢。真的,但我需要进行左外连接,因为当 A 没有 B 的条目时,内连接将返回 List()。
    • 顺便说一句。我仍然在挣扎,因为当我使用外部连接时,我无法返回整个 Object2 .. 这有点愚蠢。
    • 你能发布你的代码吗?我不太明白你的问题
    猜你喜欢
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2016-08-18
    • 2016-01-20
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多