2013-09-10 62 views
0

對於我所閱讀的內容,在某些情況下,無法在HQL/Hibernate中嵌套子查詢。使用HQL/Hibernate嵌套查詢

比方說,我有一個價格屬於一個組的文章表。我們希望將它們全部添加,但我們只能爲每組文章添加限制。實際上,該表格是非規範化的,因此我們已經在文章表中爲該組設置了最大金額。

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 
) 

很顯然,我的數據模型比較複雜,但是這是我的主要問題:

因此,作爲SQL是那樣簡單。

我不知道我該如何在HQL中重寫,因爲我猜我不允許將一個子查詢嵌套到另一個子查詢中。

謝謝大家。

回答

0

我不願意這樣做,但經過一番研究後,我只能考慮如何使用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。