我有以下映射器,以便在Slick模型和查询中使用Joda DateTime值:
import java.sql.Timestamp
import org.joda.time.DateTime
import scala.slick.driver.MySQLDriver.simple._
object Mappers {
implicit def joda =
MappedColumnType.base[DateTime, Timestamp](
dt => new Timestamp(dt.getMillis),
ts => new DateTime(ts.getTime)
)
}
我定义的包含DateTime字段的表类似乎可以通过导入它来编译。但是,像这样的静态查询不会:
sql"""select s.expiresAt from tablename s limit 1""".as[DateTime].first
我收到此错误:
could not find implicit value for parameter rconv: scala.slick.jdbc.GetResult[org.joda.time.DateTime]
我需要添加什么才能使其正常工作?
答案 0 :(得分:2)
不幸的是,您需要定义另一个转换器
implicit val getDateTimeResult = GetResult(r => new DateTime(r.nextTimestamp()))
答案 1 :(得分:0)
我最后使用slick-joda-mapper而不是编写自己的映射器来解决这个问题。