【问题标题】:Spring Boot Query on Date field without time没有时间的日期字段的Spring Boot查询
【发布时间】:2020-07-28 12:14:35
【问题描述】:

我有一个实体,其日期字段类型为 java.util.Date,而 oracle db 中的该字段类型为 timestamp。

问题是,当我使用存储库按给定规格查找时,它在给定日期没有返回任何内容。

只有当我想要确切的 equal 日期时才会发生这种情况。它适用于greaterThen 和lessThen,这是因为保存记录的时间不同。

我怎样才能忽略记录的时间并仅在给定日期获取它们?

谢谢一百万

【问题讨论】:

  • 在 ddMMyy 00:00:00 和 ddMMyy 23:59:59 之间?
  • 你是对的,但我正在寻找其他解决方案。可能会有更好的。

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


【解决方案1】:

我认为您需要查看@Temporal @JsonFormat 注释。 Link

示例用法;

@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MMdd'T'HH:mm:ss")
protected Date lastUpdate;

【讨论】:

    【解决方案2】:

    因为数据保存时间最好的方法是使用between 条件从 00:00 到 23:59 在那一天。特别感谢这个链接:

    Spring Data Querying DateTime with only Date

    但我通过从该表中创建一个视图并从 oracle 中的日期中删除时间来解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 2018-05-31
      • 2021-10-08
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2015-10-01
      相关资源
      最近更新 更多