【问题标题】:How to transfer SQL Select Subquery to JPQL?如何将 SQL 选择子查询转移到 JPQL?
【发布时间】: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 不。它只是在编译时吐出错误而没有任何进一步的细节
  • 编译时?它不应该在编译时检查它。它只是一个字符串。

标签: java sql oracle jpa jpql


【解决方案1】:

嗯....我想我找到了答案。无法实现本文中解释的此类命名查询:JPA/hibernate subquery in from clause

我将坚持使用本机查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 2015-10-02
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2011-09-29
    相关资源
    最近更新 更多