命名查询中的 HQL 错误

HQL Error in Named Query

我收到 Hibernate 的消息说我有一个 "Error in named query"。

下面是我要执行的 HQL 语句。

select sum(subtotal)
from (
      select sum(coalesce(sum(t2.amount), 0) - coalesce(sum(t3.amount), 0)) subtotal
      from submission t1
      left join t1.bills t2
      left join t1.payments t3
      where t1.id = 10
      group by t1.id

      union

      select sum(coalesce(sum(t2.amount), 0) - coalesce(sum(t3.amount), 0)) subtotal
      from submission t1
      left join t1.otherBills t2
      left join t1.payments t3
      where t1.id = 10
      group by t1.id
) a1

我认为问题可能与外部查询中的 sum 函数或 union 运算符有关,但我无法缩小范围。

有没有人有什么想法?

您不能在 HQL 中的 From 子句之后使用子查询。我的建议是可以使用native query。有关更多详细信息,您应该查看以下内容 link :- Hibernate Query Limitation

休眠 does not support union.

一项功能请求已开放十年。