JPQL 中的子选择

Subselect in JPQL

希望在 JPQL 中执行可能的子选择。我经常使用 SQL 并希望执行这样的查询:

Select ((Select SUM(e.hours.hours) from app$Time e 
where e.type = 'Purchased')
 - 
(Select SUM(f.hours.hours) from app$Time f 
where f.type = 'Used'))

我还没有看到很多 JPQL 执行这样的查询的例子,希望这是可能的。

周杰伦,

JPA 2.1 规范不支持 select 列表中的子查询。

来自规范:

SELECT 子句可以包含以下一个或多个元素:一个标识变量,它 范围涵盖抽象模式类型、单值路径表达式、标量表达式、聚合 表达式,构造函数表达式。

解决方法:您可以执行两个 JPQL 查询,并在 java 代码

中从已购买的中减去已使用的