Странное исключение при использовании groupBy в slick

У меня есть таблица с несколькими столбцами, два из них: 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]

Кто-нибудь знает, что я делаю неправильно?


person Cristian Boariu    schedule 22.04.2013    source источник


Ответы (1)


Не уверен, что это одно и то же, но см. эту изящную проблему. Это уже исправлено в апстриме, но в версии 1.0.0 проблема все еще есть.

person Martin Kolinek    schedule 23.04.2013