Отличное сравнение Rep [Option [ZonedDateTime]] с ZonedDateTime - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь сравнить ZonedDateTime со следующим кодом:

val now = ZonedDateTime.now()

val query = for {
  x <- xTable.query if x === id
  if x.starts.isAfter(now) // Doesn't work
} yield x

...slick.run(query.result)

Но, похоже, я не могу получить доступ к .isAfter, потому что x.starts это Rep[Option[...]], есть ли лучшеспособ сделать то, что я пытаюсь достичь?

1 Ответ

0 голосов
/ 08 октября 2018

Из того, что вы описали, может показаться, что подходящее сопоставление типов столбцов может отсутствовать.Для даты / времени схемы Slick поддерживает только java.sql.{Date, Time, Timestamp} на основе JDBC.Вам потребуется неявный картограф в области видимости, где бы ни использовался ZonedDateTime.Картограф должен выглядеть примерно так:

import java.sql.Timestamp
import java.time.ZonedDateTime
import scala.slick.driver.JdbcProfile.MappedColumnType

implicit val zonedDateTimeMapper = MappedColumnType.base[ZonedDateTime, Timestamp](
  zdt => Timestamp.from(zdt.toInstant),
  ts => ZonedDateTime.ofInstant(ts.toInstant, ZoneOffset.UTC)
)
...