2015-10-14 98 views
0

我是hibernate的新手。我在我的項目中使用休眠,但我堅持一點。我有兩個數據庫表,這是類似如下:Hibernate group by criteria

第一臺

Category 
id | name 
--------- 
1 | cat1 
2 | cat2 

二表

Product 
id | categoryid | name 
---------------------- 
1 | 1   | p1 
2 | 1   | p2 

什麼,我想實現的是獲取包含類別和產品數量在結果每個類別。

categoryid | productcount 
1   | 2 
2   | 0 

目前我能夠使用Hibernate本機sql支持。

SQL:

SELECT c.id, CASE WHEN x.count IS NULL THEN 0 ELSE x.count END AS productcount 
FROM category AS c LEFT OUTER JOIN 
(
    SELECT categoryid,count(*) AS count 
    FROM product 
    GROUP BY categoryid 
) AS x 
ON x.categoryid = c.id 

請幫我實現這個使用Hibernate的標準 感謝

+0

您是否僅僅詢問如何將此SQL轉換爲Hibernate條件? HQL/JPQL /標準(Hibernate或JPA),它們都不支持'JOIN'或'FROM'子句中的子選擇語句。 – Tiny

+0

@Tiny我是否應該使用標準 – Shadow

+0

得出結論:我建議你在休眠時使用Spring Data,這會讓你的生活更輕鬆。不要浪費時間寫這樣的一般查詢! – azerafati

回答