当前位置: 首页 > 面试题库 >

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

钮善
2023-03-14
问题内容

我的实体当前包含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所做的一切)。



 类似资料:
  • persistence.xml文件 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd“>org.hibernate.ejb.hibernatePersistence

  • 我有一个这样的xml: 我正在使用simplexml_load_string将其解析为SimpleXmlElement。然后我像这样得到我的节点 我需要处理简单的超文本标记语言,例如:

  • 我正在用Gradle构建一个演示Spring Boot应用程序,并使用Heroku托管该应用程序。我已经预装了Gradle4.8,所以我没有在项目目录中保留文件,并且应用程序在本地上运行良好,但是当我使用。以下日志显示警告: 并且生成在显示Gradle版本错误后失败: 意味着它使用默认的文件和安装2.0来部署应用程序。 现在我的问题是,如何强制Heroku部署进程使用预装的Gradle版本,而不在

  • 问题内容: 我似乎在Hibernate中映射列表时遇到问题。在我们的项目中有一类用含有类与含有。 Hibernate 是否可以使用注释进行映射?我的意思是,因为它没有注释? 问候 问题答案: 用途: 资料来源: 7.2.3。基本类型和可嵌入对象的集合

  • 问题内容: 我用下面的查询来获得与指数,以及: …但似乎是保留字。例如可以。MySQL使用反引号转义的当前方式是如何在HQL中转义 别名 ? 使用反引号会出现以下错误: 问题答案: 您可以通过使用自定义“别名映射”转换器的解决方法来实现,因此您的代码将更改为如下所示 然后使用此类:

  • 问题内容: 从pandas DataFrame中选择单个列时(例如,或等),结果矢量将自动转换为Series而不是单列DataFrame。但是,我正在编写一些将DataFrame作为输入参数的函数。因此,我更喜欢处理单列DataFrame而不是Series,以便函数可以假定df.columns是可访问的。现在,我必须使用来将Series显式转换为DataFrame 。这似乎不是最干净的方法。是否有