【问题标题】:Subquery in FROM clause using CriteriaQuery使用 CriteriaQuery 的 FROM 子句中的子查询
【发布时间】:2019-04-22 19:12:44
【问题描述】:

我需要实现 select from 一个嵌套查询,为了简单起见:

select * from (select * from city) c

如何使用CriteriaQuerySubquery 完成此操作?

【问题讨论】:

标签: jpa spring-data-jpa criteria-api


【解决方案1】:

您不能,因为 (select * from city) 不是实体,并且 CritieriaAPI 查询的实体不是表。

唯一的方法是为 (select * from city) 创建一个视图并将该视图映射到一个实体。

【讨论】:

    【解决方案2】:

    首先,如前所述,您的语法不符合 JPA,其次,您必须知道 JPQL 中的子查询仅允许在 WHERE 和 HAVING 子句中使用。这同样适用于条件查询。如果您需要更强大的 SQL 子查询功能,那么对于 JPA,您必须为原生查询使用 JPA 规定,否则,请使用其他类型的 JDBC 库。

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 2014-02-12
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多