我像这样使用 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吗?
最佳答案
Is it not supposed to convert the LocalDateTime automatically ?
不,背后并没有什么魔法可以将 java.util.Date
对象转换为 java.time.LocalDateTime
,反之亦然 - 自动。
现在,您可以手动 convert the objects yourself ,但我建议不要这样做。在应用程序的所有层中使用相同的数据类型被认为是一种很好的做法。
旁注:请记住,java.util.Date
是一个较旧的类,并且不考虑很多事情(例如闰年)。相反,LocalDateTime
具有更多功能并且非常强大。这完全取决于您的用例场景。我建议阅读这两个类(class)的文档,以确定哪一个更适合您。另外,这个答案在 comparing most date-time types in Java 上做得很好。
关于java - 使用 java.time 进行 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60421513/