使用java.sql.Date进行Spring Data JPA查询要比使用java.util.Date快4倍

时间:2019-12-12 14:36:53

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

我第一次创建了一个使用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情况下会导致这种缓慢的原因?

1 个答案:

答案 0 :(得分:0)

总结一下,

java.sql程序包包含JDBC类型,这些类型与SQL标准定义的类型对齐。

类型java.util.Date包含日期和时间信息,精度最高为毫秒。但这与任何SQL类型都没有直接关系。

因此,除非性能绝对必要,否则我不必担心性能。