在Postgres数据库中存储ZonedDateTime

时间:2017-07-05 11:26:21

标签: postgresql jpa zoneddatetime

我在我的JPA实体中使用ZonedDateTime。我也在使用Postgres db。默认情况下,postgres将表模式创建为bytea列类型。

我有两个问题

  1. 将此信息存储为bytea格式是否可以?
  2. 如果我要进行SQL比较,假设我希望条目大于给定日期,如何在SQL中编写此比较,这意味着如何将bytea转换回日期?

1 个答案:

答案 0 :(得分:3)

首先,JPA只是映射基本和最常见的类型。

Bytea是postgres在声明不支持类型的字段时最终使用的类型,并且没有注释说明如何处理它。 见https://www.postgresql.org/docs/9.0/static/datatype-binary.html。 使用bytea的原因是,当无法映射类型时,它假定您希望对象存储为序列化。

此时JPA不支持Java 8类型,有关JPA标准的更多信息: https://vladmihalcea.com/whats-new-in-jpa-2-2-java-8-date-and-time-types/

你可以用hibernate创建一个自定义数据类型,不久之前我在play框架组中发布了这个: https://groups.google.com/d/msg/play-framework/3AtNiMf_WBM/LBMeztlXBAAJ

再见
汉斯