【问题标题】:How to substract day from date in a Java Persistence Query?如何在 Java 持久性查询中减去日期?
【发布时间】:2013-02-12 09:02:10
【问题描述】:

我正在寻找一种方法来使用 Java Peristence Query 列出所有 10 天前的项目(例如,我的案例将是阈值的参数)。

我的查询

SELECT DISTINCT item
FROM Item item
INNER JOIN item.flags flag
WHERE flag.tspDate ............ :intDaysThreshold

我希望能够做一些类似于我们在 PostgreSQL 中使用 INTERVAL 所做的事情。

非常感谢您的帮助

【问题讨论】:

    标签: jakarta-ee persistence ejb-3.0 jpql


    【解决方案1】:

    这不能在 JPQL 查询中完成,因为它不支持任何类型的日期算术。后备选项有:

    1. 原生 SQL 查询
    2. 使用可能在实现中可用的扩展(例如 EclipseLink 中的 FUNC
    3. 查询更大的数据集并在 Java 中执行计算
    4. 通常(如果条件与当前日期相关)可以以这种形式构造查询,该参数可以在 Java 端计算(例如过去 10 天的日期)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多