在hibernate实体中用时间api替换joda时间

在hibernate实体中用时间api替换joda时间,hibernate,timestamp,timezone,jodatime,java-time,Hibernate,Timestamp,Timezone,Jodatime,Java Time,我目前正在一个项目中从jodatime升级到javatime api。该项目使用hibernate版本4.3.1和jadira.usertype在org.joda.time.DateTime和java.sql.Timestamp()之间进行映射 摘自其中一个实体: @列(name=“created_at”) 私有日期时间创建数据; 当服务器系统时间为“Fri Feb 7 10:09:02 CET 2020”时, 这将存储到列:“2020-02-07 09:09:02.431000” 在joda

我目前正在一个项目中从jodatime升级到javatime api。该项目使用hibernate版本4.3.1和jadira.usertype在org.joda.time.DateTime和java.sql.Timestamp()之间进行映射

摘自其中一个实体:

@列(name=“created_at”)
私有日期时间创建数据;
当服务器系统时间为“Fri Feb 7 10:09:02 CET 2020”时, 这将存储到列:“2020-02-07 09:09:02.431000”

在joda时间转换指南()中指出org.joda.DateTime与java.time.ZonedDateTime的概念相同。我正在考虑用ZonedDateTime替换DateTime,但有两件事会引起关注和问题:hibernate版本不支持新的java.time类型,列数据类型“created_at”是“timestamp without time zone”。升级hibernate还不是一个选项

我正在考虑对实体列使用java.sql.Timestamp而不是org.joda.DateTime

@列(name=“created_at”)
私有时间戳createdAt;

但不确定在从/转换为时间戳时使用哪个java.time类型而不是org.joda.DateTime-请提供有关如何执行此操作的任何建议

从版本5.2开始,Hibernate似乎支持新的java.time类型。但在此之前,他们还有一个可选的
hibernate-java8
包来添加这种支持。如果你不能升级,你能使用那个旧的(现在不推荐使用的)软件包吗?我明白,使用java.time是一个进步。使用
Timestamp
是一种倒退,我看不出你为什么要这样做。这个类设计得很糟糕,而且已经过时很久了。从5.2版开始,Hibernate似乎支持新的java.time类型。但在此之前,他们还有一个可选的
hibernate-java8
包来添加这种支持。如果你不能升级,你能使用那个旧的(现在不推荐使用的)软件包吗?我明白,使用java.time是一个进步。使用
Timestamp
是一种倒退,我看不出你为什么要这样做。那门课设计得很糟糕,而且早已过时。