【发布时间】:2021-10-31 22:33:00
【问题描述】:
我们如何为以下原生查询编写 JPA 或 JPQL 查询?参考链接-SQL Oracle - How to make query dynamic to accept multiple days to calculate the expiration
SELECT * FROM PASS_EXP
WHERE TRUNC(EXPIRY_DT) IN (
SELECT TRUNC(SYSDATE) + COLUMN_VALUE
FROM TABLE(SYS.ODCINUMBERLIST(1, 3, 5, 7, 15))
);
或者
SELECT p.*
FROM PASS_EXP p
INNER JOIN TABLE(SYS.ODCINUMBERLIST(1, 3, 5, 7, 15)) t
ON ( p.expiry_dt >= TRUNC(SYSDATE) + t.COLUMN_VALUE
AND p.expiry_dt < TRUNC(SYSDATE) + t.COLUMN_VALUE + 1 );
假设 1、3、5、7、15 将作为 List 出现在查询中
【问题讨论】:
-
你不能,因为 JPQL 没有 TABLE 函数。但是恕我直言,这不是问题,因为您可以从本机查询中获取实体
-
如何使用原生查询获取实体?