在JPQL中进行子选择

时间:2017-04-26 12:25:11

标签: jpql cuba-platform

希望在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执行这样的查询的例子,希望这是可能的。

1 个答案:

答案 0 :(得分:0)

周杰伦,

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

来自规范:

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

解决方法:您可以执行两个JPQL查询并从java代码中的Purchased中减去Used