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

Jakarta ee 如何在Java持久性查询中从日期减去日期?,jakarta-ee,persistence,ejb-3.0,jpql,Jakarta Ee,Persistence,Ejb 3.0,Jpql,我正在寻找一种使用Java Peristence查询列出10天(例如,我的案例将是阈值的一个参数)的所有项目的方法 我的问题 SELECT DISTINCT item FROM Item item INNER JOIN item.flags flag WHERE flag.tspDate ............ :intDaysThreshold 我希望能够使用INTERVAL做一些类似于PostgreSQL的事情 非常感谢您提供的帮助在JPQL查询中无法完成,因为它不支持任何类型的日期算法

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

我的问题

SELECT DISTINCT item
FROM Item item
INNER JOIN item.flags flag
WHERE flag.tspDate ............ :intDaysThreshold
我希望能够使用INTERVAL做一些类似于PostgreSQL的事情


非常感谢您提供的帮助

在JPQL查询中无法完成,因为它不支持任何类型的日期算法。回退选项包括:

  • 本机SQL查询
  • 在实现中使用可能可用的扩展(例如在EclipseLink中)
  • 用Java查询较大的数据集并执行计算
  • 通常(如果条件是相对于当前日期的),可以以这样的形式构造查询,该参数可以在Java端计算(例如,过去10天的日期)