繁体   English   中英

需要有关HIbernate计数查询的帮助

[英]Need help regarding HIbernate count query

我们有一个用例来数不。 实际查询返回的行数。 我没有得到如何使用休眠中的条件来获取它。 例如,假设我要运行查询

select sum(TOTAL_EARNINGS) from table where column1 = 'value1' group by column2);

除了此查询结果之外,我还希望获得上述查询返回的总行数(以上查询也可能具有rownum限制,但对于总行,我必须忽略rownum限制)。

select count(*) from (select sum(TOTAL_EARNINGS) from table
                where column1 = 'value1' group by column2);

有没有简单的方法来获取此数据。 我可以运行单独的查询来获取计数数据,但是我没有得到如何使用条件在休眠状态下编写此查询。 我什至看不到可以使用的子查询中的任何选项

通常,可以使用标准来使用投影。 如果您有一个由Hibernate映射的实体“您的”,则可以这样做:

编辑 :根据您的评论,您需要两个结果,一个总数和一个结果分组。

//the group by results...
List result1 = session.createCriteria("Your.class").setProjection(Projections.projectionList()
            .add(Projections.groupProperty("column2"))
            .add(Projections.sum("totalErnings"))
    ).list();

//the total count result
return (Integer) session.createCriteria("Your.class").add(Restrictions.eq("column1", val)).setProjection(Projections.rowCount()).uniqueResult();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM