[英]Hibernate with java.time
我正在像这样使用 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 吗?
不应该自动转换 LocalDateTime 吗?
不,幕后没有魔法将java.util.Date
对象自动转换为java.time.LocalDateTime
,反之亦然。
现在,您可以自己手动转换对象,但我建议不要这样做。 在应用程序的所有层中使用相同的数据类型被认为是一种很好的做法。
旁注:请记住java.util.Date
是一个较旧的类,并且不会考虑很多事情(例如闰年)。 相反, LocalDateTime
具有更多功能并且非常健壮。 这一切都取决于您的用例场景是什么。 我建议阅读这两个类的文档以确定哪一个更适合您。 此外,这个答案在比较 Java 中的大多数日期时间类型方面做得很好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.