为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陪伴而非守候 2021-11-03 16:26:49
我正在尝试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[...]],有没有更好的方法来完成我想要实现的目标?
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

根据您的描述,听起来可能缺少合适的列类型映射。对于日期/时间模式,Slick 仅支持基于 JDBC 的java.sql.{Date, Time, Timestamp}. 无论在哪里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)

)


查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信