我的实体当前包含java Date属性。我开始非常频繁地将Joda Time用于日期处理和计算。这意味着我一直必须将Dates转换为Joda DateTime对象,然后再次转换。
所以我想知道,有什么理由不应该仅更改我的实体来存储Joda DateTime对象而不是Java Date对象吗?
请注意,这些实体通过Hibernate保留。我找到了jodatime-hibernate项目,但我还在Joda邮件列表中阅读到它与较新版本的hibernate不兼容。而且似乎维护得不太好。
因此,我想知道是否最好仅在Date和DateTime之间继续转换,或者开始持久化DateTime对象是否明智。我担心的是依赖于维护不良的图书馆。
编辑:请注意,我的目标之一是更好地存储时区信息。仅存储日期似乎可以将日期保存在本地时区。由于我的应用程序可以在全球范围内使用,因此我也需要知道时区。Joda Time Hibernate在用户指南中似乎也解决了这一问题。
我认为使用Joda DateTime作为bean属性类型可能是一个好主意。然后,您可以让Hibernate进行转换并将属性另存为本机数据库日期格式。
我个人使用过jodatime-hibernate,但没有遇到任何问题(我们使用的是Hibernate 3.2.5GA)。
如果您对jodatime- hibernate感到担心,则可以始终使用Hibernate的自定义类型映射机制(我敢肯定,这是jodatime-hibernate所做的一切)。