hibernate 如何统计 分组后的结果 的条数

selectcount(1)from(selectsum(cost)fromxxxgroupbyname)aaa;这句在mysql中执行没有错,但是不知道该如何转为hib... select count(1) from (select sum(cost) from xxx group by name)aaa;
这句在mysql中执行没有错,但是不知道该如何转为hibernate 中的 hql。
或者您可以直接告诉我怎么 统计 分组后的结果的条数,用hibernate。
非常感谢~~
问题是这样的,要做个数据统计,统计出来的结果要根据代理商分组显示,所以mysql语句就类似这样
SQL_A: select count(column_1) from table_name group by column_2;
因为要分页显示,所以要得到统计结果的条数,在网上找到的sql类似于这样
SQL_B: select count(1) from (select count(column_1) from table_name group by column_2)aaa;
基本结构其实就是 select count(1) from (SQL_B);
下面这条语句在mysql中执行没有错误,但是不知道怎么写成hql。
展开
 我来答
SZaGy
推荐于2016-02-27
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
1.HQL几乎可以办到绝大部分SQL要表达的含义。并且由于支持方言,所以可以跨数据库,所以不是万不得已还是不要使用SQL原生查询接口。你的那个查询用HQL其实很简单的:
String hql = "select count(??) from ?? group by ??";
Query query = session.createQuery(hql);
为了支持分页,只需加上这样的限制:
query.setMaxResults(10);
query.setFirstResult(0);
这样就是显示了10条数据了,setFirstResult方法的参数根据你选择的页数来计算就OK!
2.使用Criteria,Criteria criteria = session.createCriteria(??.class);
criteria.setProjection(Projection.groupProperty("分组统计的字段名称")).list();
返回一个结构是 长度为2的Object[]数组对象的List。注意Criteria可能目前仍然不支持having表达式,但是这种编程式的查询比HQL要好。
xujishen2010
2010-12-31 · 超过15用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
hql 的方法很有限,hibernate 也可以直接 走SQL的,
Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
SQLQuery sqlQuery = session.createSQLQuery(sql);//这个sql就是你的sql语句.想咋写就咋写
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qplvs12
2011-01-03 · TA获得超过2155个赞
知道小有建树答主
回答量:1636
采纳率:0%
帮助的人:946万
展开全部
我对lucene只是略有了解,所以提点建议吧。
你说的分组统计,指的是分页,还是什么意思?
热门关键字的话,我觉得可以分词后,然后保存到数据库。
然后选择前几个次数最多的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北京_9527
2010-12-30
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
其实就是本地的sql 语句 如果你把相关的hibernate部分代码贴出来就好了 咱得具体问题具体分析
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式