它不会在 比较 Rep[Option[ZonedDateTime]] 和 ZonedDate

我正在尝试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.startsis Rep[Option[...]],有没有更好的方法来完成我想要实现的目标?


陪伴而非守候
浏览 158回答 1
1回答

茅侃侃

根据您的描述,听起来可能缺少合适的列类型映射。对于日期/时间模式,Slick 仅支持基于 JDBC 的java.sql.{Date, Time, Timestamp}. 无论在哪里ZonedDateTime使用,您都需要在范围内使用隐式映射器。映射器应如下所示:import java.sql.Timestampimport java.time.ZonedDateTimeimport scala.slick.driver.JdbcProfile.MappedColumnTypeimplicit val zonedDateTimeMapper = MappedColumnType.base[ZonedDateTime, Timestamp](&nbsp; zdt => Timestamp.from(zdt.toInstant),&nbsp; ts => ZonedDateTime.ofInstant(ts.toInstant, ZoneOffset.UTC))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java