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。 展开
这句在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。 展开
4个回答
展开全部
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要好。
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要好。
展开全部
hql 的方法很有限,hibernate 也可以直接 走SQL的,
Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
SQLQuery sqlQuery = session.createSQLQuery(sql);//这个sql就是你的sql语句.想咋写就咋写
Session session = hibernateTemplate.getSessionFactory().getCurrentSession();
SQLQuery sqlQuery = session.createSQLQuery(sql);//这个sql就是你的sql语句.想咋写就咋写
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我对lucene只是略有了解,所以提点建议吧。
你说的分组统计,指的是分页,还是什么意思?
热门关键字的话,我觉得可以分词后,然后保存到数据库。
然后选择前几个次数最多的。
你说的分组统计,指的是分页,还是什么意思?
热门关键字的话,我觉得可以分词后,然后保存到数据库。
然后选择前几个次数最多的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就是本地的sql 语句 如果你把相关的hibernate部分代码贴出来就好了 咱得具体问题具体分析
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询