【问题标题】:Mapping Joda Datetime映射 Joda 日期时间
【发布时间】:2015-04-16 07:22:59
【问题描述】:

我在 PostgreSQL 中有一个包含这个特定日期列的表,我需要使用 Slick 2.0 基于一个特定 ID 检索所有记录,我正在使用 Joda 来管理日期

MyTable 
(
    IdTable Int NOT NULL,
    Name varchar(64),
    Created_Date timestamp with time zone DEFAULT now()
)

然后我尝试以这种方式在 Slick 中映射它:

val Created_Date: Column[Option[DateTime]] = columnOption[DateTime]

只要我在表中添加 Created_Date 列,检索记录的方法就会失败。使用 Joda 在 Slick 中映射日期时间和时区的正确方法是什么?有什么推荐吗?

【问题讨论】:

    标签: postgresql jodatime slick slick-2.0


    【解决方案1】:

    要将 db 类型与 scala 类型一起使用,您需要定义一个类型映射器,用于在 db 原始数据和 scala 对象之间进行转换。

    您可以使用 slick MappedColumnType 定义您的时间戳,因为 slick 已经内置支持时间戳。 这是 slick 2.0.3 的guide content

    但您也可以使用其他现有库,例如:slick-pgslick-joda-mapper

    【讨论】:

      【解决方案2】:

      我已经成功地在 Slick 2.x 中检索 timestamp with time zone 列,使用:

      def timestamp = column[Timestamp]("timestamp", O.Default(null))
      

      【讨论】:

        猜你喜欢
        • 2015-04-21
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2019-08-30
        • 1970-01-01
        • 1970-01-01
        • 2014-06-08
        • 1970-01-01
        相关资源
        最近更新 更多