Java 如何在JPA谓词中同时使用OracleTrunc和NVL函数?
我有一个特定的Oracle查询,在where子句中具有以下条件:Java 如何在JPA谓词中同时使用OracleTrunc和NVL函数?,java,oracle,jpa,Java,Oracle,Jpa,我有一个特定的Oracle查询,在where子句中具有以下条件: SELECT col_a FROM table_x WHERE TRUNC(NVL(date_col, sysdate + 365)) > TRUNC(TO_DATE('11-Jan-2001', 'dd-mon-yyyy')); 我无法理解如何使用CriteriaBuilder创建where子句谓词。到目前为止,我已经想了一半,但仍然停留在sysdate+365部分。我特别需要获得数据库日期,因为我的应用程序
SELECT col_a
FROM table_x
WHERE TRUNC(NVL(date_col, sysdate + 365)) >
TRUNC(TO_DATE('11-Jan-2001', 'dd-mon-yyyy'));
我无法理解如何使用CriteriaBuilder创建where子句谓词。到目前为止,我已经想了一半,但仍然停留在sysdate+365部分。我特别需要获得数据库日期,因为我的应用程序当前日期和数据库当前日期可能不同
Predicate p = criteriaBuilder.greaterThan(
criteriaBuilder.function("TRUNC", LocalDate.class, root.get(date_col)),
criteriaBuilder.function("NVL", LocalDate.class, root.get(date_col))
);
我不知道如何获取sysdate+365并将其传递给criteriaBuiler。
有人能帮忙吗?由于公司限制,我无法发布完整的代码片段