【问题标题】:Hibernate with java.time使用 java.time 休眠
【发布时间】:2020-02-26 19:50:54
【问题描述】:

我正在像这样使用 Hibernate:

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.2.12.Final</version>
 </dependency>

我了解到,从 Hibernate 5.2 开始,就有对 java.time 的原生支持。

我的实体字段仍然是 java.util.Date,我想使用 LocalDateTime 查找实体。

但是我收到异常 InvalidDataAccessApiUsageException 并显示消息“参数值 [2020-02-26T00:00] 与预期类型 java.util.date 不匹配”。

不应该自动转换 LocalDateTime 吗?

【问题讨论】:

    标签: java spring hibernate spring-data-jpa spring-data


    【解决方案1】:

    不应该自动转换 LocalDateTime 吗?

    不,幕后没有魔法可以将java.util.Date 对象投射到java.time.LocalDateTime,反之亦然-自动
    现在,您可以手动 convert the objects yourself,但我建议您不要这样做。在应用程序的所有层中使用相同的数据类型被认为是一种很好的做法。

    旁注:请记住java.util.Date 是一个较老的课程,并没有考虑很多事情(例如闰年)。 LocalDateTime 相反具有更多功能并且非常强大。这一切都取决于您的用例场景。我建议阅读这两个类的文档,以确定哪一个更适合您。此外,这个答案在comparing most date-time types in Java 上做得很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-31
      • 2012-04-02
      • 2023-04-07
      • 2011-02-25
      • 2013-07-01
      • 2014-09-27
      • 2014-11-30
      • 2013-04-13
      相关资源
      最近更新 更多