java - 使用 java.time 休眠
问题描述
我像这样使用休眠:
<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 中的大多数日期时间类型方面做得很好
推荐阅读
- java - 将新行附加到 BufferedWriter
- python - 将用户输入与关键词列表进行比较
- mvvm - RxBinding 和 DataBinding 是 MVVM 的最佳选择
- python - 在输入训练和验证集后如何使用交叉验证?
- netsuite - suitescript 2.0:如何在客户端脚本中修改和保存子记录
- python - 动画只能显示第一帧
- android - 切换到另一个 Fragment 后使用 RunOnUIThread 导致空指针异常
- regex - 我可以用单个 mod_rewrite 正则表达式规则替换 if/then
- asp.net - 如何在 ASP.NET 中基于数据集动态创建多个梳状框
- vue.js - 自定义 iViewUI
零件