Spring Data JPA - 查询日期减去两天无效

6

我有一个查询,它更新了一些比两天前更高的价格,但是却没有起作用。

  @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);

“不起作用”并非问题描述,为什么它不能工作?你是否收到了错误提示?如果是这样,那么是什么错误?你是否得到了意外的结果?如果是这样,你得到了什么结果?以及你期望得到什么结果(根据什么数据)? - HoneyBadger
实际调用的SQL是什么? - user8558216
1个回答

9

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

  1. 通过编程计算日期(即使用日历API或Java 8日期时间API)
  2. 使用本地查询
  3. 如果您的JPA提供程序允许,则使用具体实现。但据我所知,流行的JPA提供程序没有这样的选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接