2015-10-14 101 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

回答