如何在Java持久性查询中从日期中减去日期?

时间:2013-02-26 18:58:10

标签: java-ee persistence ejb-3.0 jpql

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

我的查询

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

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

非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

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

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