Scala 多个对象上的GroupBy给出[SlickException:无法选择参考s3中的路径s2]

Scala 多个对象上的GroupBy给出[SlickException:无法选择参考s3中的路径s2],scala,slick,Scala,Slick,我正在编写一个查询,用于计算问题答案的可能分数,执行查询时,我得到一个异常 有关型号的信息 一个问题答案可以有几个(至少一个)问题答案的可能性,因为有多种方法可以正确回答问题 每个问题回答可能性都有几个问题回答部分,在下面的查询中,我们查询每个问题回答可能性的分数 有问题的查询 这是给出异常的查询 def queryAnswersWithScore()(implicit session: Session) = { (for{ ovam <- OpenVraagAnt

我正在编写一个查询,用于计算问题答案的可能分数,执行查询时,我得到一个异常

有关型号的信息

一个问题答案可以有几个(至少一个)问题答案的可能性,因为有多种方法可以正确回答问题

每个问题回答可能性都有几个问题回答部分,在下面的查询中,我们查询每个问题回答可能性的分数

有问题的查询 这是给出异常的查询

  def queryAnswersWithScore()(implicit session: Session) = {
    (for{
      ovam <- OpenVraagAntwoordMogelijkheden //questionAnswerPossibility
      ovad <- OpenVraagAntwoordOnderdelen if ovad.ovamId === ovam.id //questionAnswerPart
      ova <- OpenVraagAntwoorden if ovam.ovaId === ova.id //questionAnswer
    } yield (ova, ovam, ovad.score))
      .groupBy{ case (ova, ovam, score) => (ova, ovam)}
      .map{ case ((ova, ovam), query) => ((ova, ovam), query.map(_._3).sum)}
  }
有效的类似查询 这个查询的替代方法确实有效,区别在于我没有选择questionAnswer(ova)对象。当我在一个对象上调用group by时,一切正常

  def queryAnswersWithScore()(implicit session: Session) = {
    (for{
      ovam <- OpenVraagAntwoordMogelijkheden //questionAnswerPossibility
      ovad <- OpenVraagAntwoordOnderdelen if ovad.ovamId === ovam.id //questionAnswerPart
    } yield (ovam, ovad.score))
      .groupBy{ case (ovam, score) => ovam}
      .map{ case (ovam, query) => (ovam, query.map(_._2).sum)}
  }
def queryAnswersWithScore()(隐式会话:会话)={
(用于{
ovam(ovam,query.map(u._2.sum)}
}
这个备选查询并不是我问题的解决方案,因为我真的想要一个为每个问题答案选择分数的查询,这个分数是通过从该问题答案的“可能性”中选择最大分数计算出来的

更新 我更新了我的查询,现在我得到它来生成sql,但是结果是无效的。 看见

在github上提交一个bug我已经针对相关问题完成了此操作:。
  def queryAnswersWithScore()(implicit session: Session) = {
    (for{
      ovam <- OpenVraagAntwoordMogelijkheden //questionAnswerPossibility
      ovad <- OpenVraagAntwoordOnderdelen if ovad.ovamId === ovam.id //questionAnswerPart
    } yield (ovam, ovad.score))
      .groupBy{ case (ovam, score) => ovam}
      .map{ case (ovam, query) => (ovam, query.map(_._2).sum)}
  }