【发布时间】:2020-04-05 23:35:30
【问题描述】:
我第一次使用java.sql.Date 创建了一个常规实体。之后,我将导入更改为java.util.Date,我发现查询比以前花费了更多时间。
我开始调查这个问题,我意识到如果我将@Temporal(TemporalType.DATE) 添加到java.util.Date,它会再次变得更快。
这种行为很奇怪,因为在这两种情况下,0 值都是从数据库中获取的,所以我们不能说它是由于实体的 Date 转换而发生的。
我们使用的是Oracle数据库,对应的日期列有DATE数据类型。
-
java.util.Date:30-35 秒 -
java.sql.Date:7-8 秒
您是否知道在java.util.Date 的情况下会导致这种缓慢的原因是什么?
【问题讨论】:
-
我坚信这是因为
java.util.Date本身有一个时间组件,而java.sql.Date没有 -
我也有同样的感觉,但是如果获取了零行,为什么它很重要?
-
由于您没有说查询的初始时间是多少/增加了多少,因此无法判断其是否合理。如果查询仍然低于 1 秒,我不会考虑它。它可能有很多很多原因。如果不深入研究 hibernate 或 oracle 端的类型处理,可能无法将其固定
标签: java hibernate spring-boot spring-data-jpa