【问题标题】:Spring Data JPA - query with the date minus 2 days not workingSpring Data JPA - 查询日期减去 2 天不起作用
【发布时间】:2018-07-05 21:33:57
【问题描述】:

我有这个查询更新了比 2 天前更高的一些价格,但不起作用

  @Transactional
    @Modifying
    @Query("update HotelDailyPrice hdp  set hdp.price = (select avg (hp.price) "
            + "from HotelPrice hp where hp.id = ?1 and hp.updateDate > CURRENT_DATE - 2), hdp.day = ?2 ")
    void updateDailyAveragePrice (Hotel hotel, String dayDate);

【问题讨论】:

  • “不起作用”不是问题描述。为什么它不起作用?你有错误吗?如果是这样,错误是什么?你会得到意想不到的结果吗?如果是这样,你得到了什么结果,你期望什么(基于什么数据)?
  • 实际调用的 SQL 是什么?

标签: sql jpa spring-data spring-data-jpa amazon-aurora


【解决方案1】:

实际上,JPA 不支持时间段操作,因为并非所有数据库都支持它。所以你有以下选择:

  1. 以编程方式计算日期(即使用日历 API 或 Java 8 日期时间 API)
  2. 使用原生查询
  3. 如果您的 JPA 提供商允许,请使用具体实现。但是 AFAIK 流行的 JPA 提供商不给你这样的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多