使用 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 1.x 和 Amazon SES 发送电子邮件?