Вопрос

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top