【发布时间】:2019-09-19 01:00:27
【问题描述】:
我已经制定了一个 SQL 查询,我需要将其转换为 JPQL。该查询在 SELECT 子句中包含一个子查询,并且还从包含在子查询中的同一个表中选择所有行。
以下是我尝试翻译的 SQL 查询示例:
SELECT table.* FROM TABLE table, (SELECT * FROM TABLE table1 WHERE ... ) table1 WHERE table.id >= table1.id
我遇到困难的部分是我使用子查询SELECT table.* FROM TABLE table, (SELECT * FROM TABLE table1 WHERE ... ) table1 创建的表。子查询中的 WHERE 子句清楚如何翻译。
我目前尝试翻译查询的方式是:
SELECT t FROM Table t, t1 FROM Table t1 WHERE ... WHERE t.id >= t1.id
我在尝试这个时遇到的错误是:
org.eclipse.persistence.jpa.jpql.parser.NullExpression cannot be cast to org.eclipse.persistence.jpa.jpql.parser.IdentificationVariable
任何帮助或建议将不胜感激:D
【问题讨论】:
-
为什么不直接
SELECT t FROM Table t, Table t1 WHERE ... AND t.id >= t1.id? -
@talex 这样做会给我错误“表达式不是有效的条件表达式。”
-
任何细节?究竟哪个表达式无效?
-
@talex 不。它只是在编译时吐出错误而没有任何进一步的细节
-
编译时?它不应该在编译时检查它。它只是一个字符串。