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)}
}