Tôi đang sử dụng Slick 3.1.0-M2 và tôi muốn sử dụng java.time.LocalDate và java.time.LocalTime trong các bảng của tôi. Tôi làm như sau:Tạo ánh xạ cột tùy chỉnh cho java.time.LocalDate với Slick
import java.sql.{Date, Time, Timestamp}
import java.time.{LocalDate, LocalTime, LocalDateTime, ZoneOffset}
trait DateTimeColumns {
import slick.driver.PostgresDriver.api._
implicit val localDateTimeColumnType = MappedColumnType.base[LocalDateTime, Timestamp](
d => Timestamp.from(d.toInstant(ZoneOffset.ofHours(0))),
d => d.toLocalDateTime
)
implicit val dateColumnType = MappedColumnType.base[LocalDate, Date](
d => Date.valueOf(d),
d => d.toLocalDate
)
implicit val timeColumnType = MappedColumnType.base[LocalTime, Time](
localTime => Time.valueOf(localTime),
time => time.toLocalTime
)
}
Vì vậy, tôi có 3 ánh xạ ngầm nhưng chỉ biên dịch đầu tiên. Những người với java.sql.Date và java.sql.Time không biên soạn với:
could not find implicit value for evidence parameter of type slick.driver.PostgresDriver.BaseColumnType[java.sql.Date]
Khi tôi làm một kiểm tra tham số ẩn trong IntelliJ Tôi có thể thấy rằng các bản đồ đầu tiên tìm thấy TimestampJdbcType trong file JdbcTypesComponent.scala . Ngay bên cạnh đó tôi thấy TimeJdbcType và DateJdbcType. Vì vậy, làm thế nào đến đầu tiên được tìm thấy nhưng những người khác không?
Ahh, tôi không nghĩ rằng mình có thể đã tìm thấy lỗi này, vì vậy BIG cảm ơn bạn! :) –