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

标签 java hibernate date timezone jodatime

我的实体当前包含 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/

相关文章:

java - 将共享/安装的 block 存储与 Xodus 一起使用

java - Struts application.properties 文件不支持重音字符

java - Hibernate中的继承策略 : making an entity abstract and replacing with sub classes

java - openjdk : unable to make field private final java. util.ArrayList 的 Hibernate 错误

c# - 计算即将到来的工作日的日期时间

java - 接受/拒绝聊天客户端中的文件传输

java - 自动构建 Java RCP 以使用 JNLP 进行部署

java - Hibernate 错误地映射 BigDecimal

sql - 如何在 SQL Server 2008 中获取本周的开始日期?

javascript - 有没有办法像 JavaScript 中的 Date.now() 一样以毫秒为单位获取另一个时区的日期?