いくつかの列を持つテーブルがあり、そのうちの 2 つは vendingMachineId (繰り返されます) で、それぞれにタイムスタンプがあります。
各 vendingMachineId の最新のタイムスタンプを取得したいので、次のようにしました。
def getLastReading(assetIds: List[Int])(implicit db: Session): Map[Int, String] = {
val vmrps = (((for {
vmrp <- VendingMachineReadingProducts if (vmrp.vendingMachineId inSet assetIds)
} yield (vmrp.vendingMachineId, vmrp.timestamp)).sortBy(_._2.desc)).groupBy(x => (x._1, x._2))).map {
case (all, q) => all._1 -> all._2
}.list
vmrps map {
case (assetId, timestamp) => {
assetId -> (new SimpleDateFormat(DateTimeUtils.defaultDateTimeFormat)).format(timestamp)
}
} toMap
}
問題は、奇妙な例外を受け取ることです。
scala.slick.SlickException: Unexpected node Ref @20339870 -- SQL prefix: select
at scala.slick.driver.BasicStatementBuilderComponent$QueryBuilder.toComprehension(BasicStatementBuilderComponent.scala:75) ~[slick_2.10-1.0.0.jar:1.0.0]
at scala.slick.driver.BasicStatementBuilderComponent$QueryBuilder.expr(BasicStatementBuilderComponent.scala:285) ~[slick_2.10-1.0.0.jar:1.0.0]
at scala.slick.driver.PostgresDriver$QueryBuilder.expr(PostgresDriver.scala:55) ~[slick_2.10-1.0.0.jar:1.0.0]
at scala.slick.driver.BasicStatementBuilderComponent$QueryBuilder.buildSelectPart(BasicStatementBuilderComponent.scala:155) ~[slick_2.10-1.0.0.jar:1.0.0]
私が間違っていることを誰かが知っていますか?