Hibernate group by criteria

时间:2015-10-14 05:11:32

标签: java mysql hibernate

我是hibernate的新手。我在我的项目中使用了hibernate,但我一度陷入困境。我有两个数据库表,类似如下:

第一张表

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标准帮助我实现此目的 感谢

1 个答案:

答案 0 :(得分:0)

我认为您应该使用存储过程以及您想要的结果将其声明为OUT参数。本教程将帮助您在hibernate查询中编写或调用存储过程  http://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/