【问题标题】:JPA criteria query with subquery带有子查询的 JPA 条件查询
【发布时间】:2012-06-26 00:05:26
【问题描述】:

我想知道是否可以用 jpa 2.0 标准 api 表达以下查询。

simple_table:
user_name(varchar),
bytes_total(bigint),
time_total(bigint)

>select
   user_name, 
   sum(bytes_total),
   sum(bytes_total) * 100 / (select sum(bytes_total) from simple_table),
   sum(time_total),
   sum(time_total) * 100 / (select sum(time_total) from simple_table)
from simple_table
group by user_name

除了两个子查询外,我一切正常。我想知道这是否可能。谢谢。

【问题讨论】:

  • 我建议在两个单独的查询中进行此计算。不需要太多代码,而且性能可能更高,因为您只需要计算一次总和。
  • 谢谢@RasmusFranke,是的,这是我的第二个选择。

标签: java jpa-2.0


【解决方案1】:

那是做不到的。子查询不能在 SELECT 子句中使用。 JPQL 查询也有同样的限制。在 JPA 2.0 规范中,这表示如下:

子查询可以用在 WHERE 和 HAVING 子句中。

【讨论】:

  • 非常感谢,考虑到这一点,我可以转向其他选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多