gpt4 book ai didi

Java JPA 查询

转载 作者:行者123 更新时间:2023-11-29 07:42:26 25 4
gpt4 key购买 nike

我正在尝试从数据库中选择特定日期早于 7 天的所有实体。它通过 SQLyog 工作得很好,但在 Java 中它总是抛出这个错误:

[33, 76] The expression is not a valid conditional expression.
[76, 101] The query contains a malformed ending.

这是我在 Java 中的查询:

SELECT a FROM Applicants a WHERE (a.lastMod <= CURRENT_DATE - INTERVAL 7 DAY) ORDER BY a.applDate ASC

问题可能出在“CURRENT_DATE”部分吗?

最佳答案

CURRENT_DATE 可以,但 INTERVAL 7 DAY 不是有效的 JPQL 表达式。您需要提供日期作为参数

WHERE a.lastMod <= :dateParam

示例:

Query q = em.createQuery("SELECT a FROM Applicants a WHERE a.lastMod <= :dateParam ORDER BY a.applDate ASC");
q.setParameter("dateParam", dateParam);
List<Applicants> applicants = (List<Applicants>)q.getResultList();

// or, to avoid casting (thanks to @DavidSN)

TypedQuery<Applicants> q = em.createQuery("SELECT a FROM Applicants a WHERE a.lastMod <= :dateParam ORDER BY a.applDate ASC", Applicants.class);
q.setParameter("dateParam", dateParam);
List<Applicants> applicants = q.getResultList();

关于Java JPA 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28673348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com