Java ZoneDateTime保存在数据库中

Java ZoneDateTime保存在数据库中,java,mysql,hibernate,zoneddatetime,Java,Mysql,Hibernate,Zoneddatetime,我有一个模型对象,我想有一个带有日期的字段。目前,我正在使用ZoneDateTime,因为它符合我们的需要 Hibernate将此字段作为tinyblob存储在数据库中。我们能否将它保存在数据库中的方式更改为更可读的格式,更重要的是更改为可排序的格式 所使用的数据库是mysql数据库。这个问题已经作为Hibernate 5.0.0.Beta1的一个新版本得到解决,最初它捆绑在一个独立的Hibernate-java8 现在它直接捆绑在hibernate core中,因此只需确保您使用的是最新版本(

我有一个模型对象,我想有一个带有日期的字段。目前,我正在使用
ZoneDateTime
,因为它符合我们的需要

Hibernate将此字段作为
tinyblob
存储在数据库中。我们能否将它保存在数据库中的方式更改为更可读的格式,更重要的是更改为可排序的格式


所使用的数据库是mysql数据库。

这个问题已经作为Hibernate 5.0.0.Beta1的一个新版本得到解决,最初它捆绑在一个独立的
Hibernate-java8

现在它直接捆绑在
hibernate core
中,因此只需确保您使用的是最新版本(5.2.X+),如果您使用的是
maven
,应该是这样的

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>5.2.10.Final</version>
</dependency>

org.hibernate
冬眠核心
5.2.10.最终版本

我假设“可排序”的意思是“按时间的瞬间排序”?(
ZonedDateTime
如果你真的只想要一个日期,那就不合适了,顺便说一句,
LocalDate
应该是合适的类型。)@JonSkeet我在需要精确时间(最长为毫秒)的字段中使用ZonedDateTime。我只需要日期的字段中的LocalDate。在这篇文章中提到这两个都是过分的“在这篇文章中提到这两个都是过分的。”我真的不认为要求你准确描述你试图表示的数据是过分的。你说你想代表一个约会,但你不是。您试图表示时间上的一个瞬间以及相关的时区,大概是这样。当你试图接受帮助时,尽可能准确是很重要的。谢谢。我会尝试一下,让你知道:)我尝试了解决方案。hibernate核心解决方案与spring数据存在冲突。它需要JPA2,而spring数据与jpa一起工作,应用程序甚至都不会启动。我也尝试了hibernate-java8版本,但它没有修复它。@Panos那么你也必须升级你的Spring数据版本,至少升级到支持hibernate 5.2的版本
1.11
,在更改我的所有依赖项后,在这里检查@fuji(我删除了
spring boot starter jpa
并手动添加了spring数据和hibernate依赖项)我成功地使其工作,但它将其保存为
TIMESTAMP
,当我保存
ZonedDateTime
时,它会忽略时区。有什么想法吗?@Panos Check