一尘不染

在Hibernate中保留Joda DateTime而不是Java Date

hibernate

我的实体当前包含java Date属性。我开始非常频繁地将Joda Time用于日期处理和计算。这意味着我一直必须将Dates转换为Joda
DateTime对象,然后再次转换。

所以我想知道,有什么理由不应该仅更改我的实体来存储Joda DateTime对象而不是Java Date对象吗?

请注意,这些实体通过Hibernate保留。我找到了jodatime-hibernate项目,但我还在Joda邮件列表中阅读到它与较新版本的hibernate不兼容。而且似乎维护得不太好。

因此,我想知道是否最好仅在Date和DateTime之间继续转换,或者开始持久化DateTime对象是否明智。我担心的是依赖于维护不良的图书馆。

编辑:请注意,我的目标之一是更好地存储时区信息。仅存储日期似乎可以将日期保存在本地时区。由于我的应用程序可以在全球范围内使用,因此我也需要知道时区。Joda
Time Hibernate在用户指南中似乎也解决了这一问题。


阅读 245

收藏
2020-06-20

共1个答案

一尘不染

我认为使用Joda DateTime作为bean属性类型可能是一个好主意。然后,您可以让Hibernate进行转换并将属性另存为本机数据库日期格式。

我个人使用过jodatime-hibernate,但没有遇到任何问题(我们使用的是Hibernate 3.2.5GA)。

如果您对jodatime-
hibernate感到担心,则可以始终使用Hibernate的自定义类型映射机制(我敢肯定,这是jodatime-hibernate所做的一切)。

2020-06-20