与HQL /休眠嵌套查询(Nested query with HQL / Hibernate)

2019-10-29 04:44发布

对于我已阅读,在某些情况下是不可能的HQL /休眠巢子查询。

比方说,我有属于一组与价格相关报道,一张桌子。 我们要添加所有这些,但我们最多只能添加到每个物品组的限制。 实际上,该表非规范化,使我们已经在文章表中的组的最大数量。

因此,SQL是简单的:

SELECT SUM(case when max_amount is null then price
when price<max_amount then price
else max_amount end)
FROM
(SELECT
SUM(price) as price, group_id, max_amount
FROM articles
GROUP BY group_id, max_amount
)

很显然,我的数据模型比较复杂,但是这是我的主要问题。

我不知道如何可以重写这个在HQL,我想我不能嵌套子查询一个到另一个。

谢谢大家。

Answer 1:

我不愿意这样做这样,但一些研究之后,我只能考虑使用SQL查询,因为它是。

就像是 :

String sQuery = "SELECT SUM(case when max_amount is null then price ...
final org.hibernate.SQLQuery query = session.createSQLQuery(sQuery);
List results = query.list();

我不敢去想休眠处理与HQL是嵌套查询。



文章来源: Nested query with HQL / Hibernate