使用 Play Framework 和 Postgres 插入时在时间戳字段上获取 TypeDoesNotMatch

Posted

技术标签:

【中文标题】使用 Play Framework 和 Postgres 插入时在时间戳字段上获取 TypeDoesNotMatch【英文标题】:Getting TypeDoesNotMatch on Timestamp field when inserting using Play Framework with Postgres 【发布时间】:2014-10-21 09:47:08 【问题描述】:

我正在尝试将数据插入到名为 users 的表中。 我只为 name 字段传递了一个值,然后会弹出这个异常。

我什至没有在参数中传递任何时间戳

即使发生这种情况,数据仍会插入到数据库中。为什么呢?

这是我得到的错误:[RuntimeException: TypeDoesNotMatch(Cannot convert 2014-10-21 17:41:41.982: class java.sql.Timestamp to Long for column ColumnName(users.joined,Some (加入)))]

代码如下:

DB.withConnection  implicit conn =>
  val id: Option[Long] =
    SQL("insert into pinglet.users (name) VALUES ('jel124')")
      .executeInsert()
    outString += id.getOrElse("nuffin'")

信息

joined 是带时区的时间戳数据类型字段。

我的 scala 版本是 2.11.1

java版本是1.8.0_25

我的 postgres jdbc 驱动是 9.3-1102-jdbc41

【问题讨论】:

【参考方案1】:

我猜INSERT返回的pk是时间戳,你要求解析为Option[Long

【讨论】:

以上是关于使用 Play Framework 和 Postgres 插入时在时间戳字段上获取 TypeDoesNotMatch的主要内容,如果未能解决你的问题,请参考以下文章

如何将 IntelliJ 与 Play Framework 和 Scala 一起使用

开发工具之play framework

如何使用 play framework 1.x 和 Amazon SES 发送电子邮件?

如何使用 Play Framework 和 videojs 流式传输视频?

Play Framework 作为 SBT 非根模块

如何在 Play Framework JSON Rest 上使用 java.time.LocalDate?