Я нашел этот пример из теста slick:
https://github.com/slick/slick/blob/master/slick-testkit/src/main/scala/com/typesafe/slick/testkit/tests/MapperTest.scala
sealed trait Bool
case object True extends Bool
case object False extends Bool
implicit val boolTypeMapper = MappedColumnType.base[Bool, String](
{ b =>
assertNotNull(b)
if(b == True) "y" else "n"
}, { i =>
assertNotNull(i)
if(i == "y") True else False
}
)
Но я пытаюсь создать TypeMapper для org.joda.time.DateTime в/из java.sql.Timestamp - но без особого успеха. Пример Bool очень специфичен, и мне сложно адаптировать его. Время Джоды очень распространено - так что любая помощь будет высоко оценена.
Чтобы быть ясным, я использую интерполированный sql "" select colA, colB from tableA, где id = ${id} "" " и тому подобное. При выполнении выбора система работает хорошо, используя типы jodaDate в неявном преобразователе GetResult.
Однако для вставок не существует способа сделать неявное преобразование или он игнорирует приведенный ниже код в ответе # 1 - ту же ошибку, что и раньше: не удалось найти неявное значение параметра pconv: scala.slick.jdbc.SetParameter [(Опция [Int], String, String, Option [org.joda.time.DateTime])]
Я не использую конфигурацию Slick Lifted Style с объектами аннотированной таблицы, возможно, поэтому не находит/не использует TypeMapper