我的实体当前包含 java 日期属性。我开始经常使用 Joda Time 进行日期操作和计算。这意味着我必须经常将 Dates 转换为 Joda DateTime 对象,然后再转换回来。
所以我想知道,有什么理由不应该只更改我的实体来存储 Joda DateTime 对象而不是 Java Date 对象?
请注意,这些实体是通过 Hibernate 持久化的。我找到了 jodatime-hibernate项目,但我也在 Joda 邮件列表上看到它与较新版本的 hibernate 不兼容。而且它似乎维护得不是很好。
所以我想知道是否最好继续在 Date 和 DateTime 之间转换,或者开始保留 DateTime 对象是否明智。我担心的是依赖维护不善的图书馆。
编辑:请注意,我的目标之一是能够更好地存储时区信息。仅存储日期似乎是将日期保存在本地时区中。由于我的应用程序可以在全局范围内使用,因此我还需要知道时区。 Joda Time Hibernate 似乎也在 the user guide 中解决了这个问题.
最佳答案
Joda Time Hibernate 可以与最近的 Hibernate 版本一起使用——您可能需要稍微调整一下您的依赖关系图,仅此而已(例如设置排除项)。我还可以建议您查看我已发布到 Sourceforge 上的用户类型吗?这为 Joda Time 提供了用户类型,旨在避免您提到的客户端偏移问题。我欢迎您对该项目的任何反馈。 https://sourceforge.net/projects/usertype/files/
问候克里斯。
关于java - 在 Hibernate 中保留 Joda DateTime 而不是 Java Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189167/