我有2個表:休眠的DetachedCriteria FROM子句
orders: id
items: id, orderId, total, flag
我想使用Hibernate標準(DetachedCriteria之後),使下面的查詢:
SELECT
o.id,
SUM(i1.total),
SUM(i2.total)
FROM
orders o
LEFT JOIN
(
SELECT
i.orderId as orderId,
SUM(i.total) as total
FROM
items i
WHERE
i.flag = 0
GROUP BY
orderId
) AS i1
ON i1.orderId = o.id
LEFT JOIN
(
SELECT
i.orderId as orderId,
SUM(i.total) as total
FROM
items i
WHERE
i.flag = 1
GROUP BY
orderId
) AS i2
ON i2.orderId = o.id
GROUP BY
o.id
我知道如何使用DetachedCriteri
一個創建子查詢在WHERE
子句中,但正如您所見,我需要在FROM
子句中執行子查詢。如果不可能,可能有辦法將它寫入SELECT
子句(在SUM()
之內),因爲這個查詢可以被重寫爲這種形式。
我真的需要使用Criteria API,即使我必須將本機SQL傳遞給查詢。
我沒有向你展示類或映射,但正如你所看到的,這是一個非常簡單的例子。
你沒向我們展示類或映射,但標準API進行了對象模型,而不是SQL來表達。 – skaffman
是的,我已經說過了。這個例子非常簡單,我不認爲這裏需要類或映射,因爲我的問題可能無法使用Criteria API解決。 – prostynick
您是否嘗試過使用此預測?添加映射和類始終有助於在發佈前檢查提示。 – zoidbeck