How to use DateTime in Slick2.0?

2020-04-04 04:05发布

I want to use DateTime in Slick 2.0 model. I use jodatime:

I added the dependencies in Build.scala:

   "joda-time" % "joda-time"    % "2.3",
   "org.joda"  % "joda-convert" % "1.6"

I then do:

 class Comment(tag:Tag) extends Table[(Long, Int, Int, String, Int, DateTime)](tag,"Comment"){
  def id=column[Long]("ID", O.PrimaryKey)
  def rate=column[Int]("rate")
  def sub=column[Int]("subject")
  def content=column[Int]("cotent")
  def user_ID=column[Int]("user")
  def time=column[DateTime]("time")   //-----------an error here
  def * = (id, rate,sub, content, user_ID, time)
}

the error is:

 could not find implicit value for parameter tm: scala.slick.ast.TypedType[org.joda.time.LocalDate]

I added joda-convert jar but it doesn't seems to work. How to add a DateTime in a Slick model class?

2条回答
ゆ 、 Hurt°
2楼-- · 2020-04-04 04:23

Take a look at https://github.com/tototoshi/slick-joda-mapper or you must create your own type mapper

查看更多
Summer. ? 凉城
3楼-- · 2020-04-04 04:33

The other answer mentioned the library, but if you want to just create your own mapper and have it in the class, this is one such example:

implicit def dateTime =
    MappedColumnType.base[DateTime, Timestamp](
      dt => new Timestamp(dt.getMillis),
      ts => new DateTime(ts.getTime)
    )

Source: Paul Coghlan (@paulcoghlan)'s comment on Gist here https://gist.github.com/dragisak/4756344#comment-1211671

查看更多
登录 后发表回答