Spring Data JPA - 查询日期减去 2 天不起作用

Ram*_*ves 3 sql jpa spring-data spring-data-jpa amazon-aurora

我有这个查询更新了比 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);
Run Code Online (Sandbox Code Playgroud)

asm*_*dey 6

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

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