日期:2014-05-20 浏览次数:20688 次
@SuppressWarnings("unchecked") public List<MovieBean> ReadMovie() { String hqlstr="SELECT movie FROM MovieBean movie "; Query query =em.createQuery(hqlstr); // query.setParameter("username", username); List<MovieBean> result= query.getResultList(); return result; }
------解决方案--------------------
[code=sql]
select count(*) from U use where " + queryCondition+ " group by use.name"
[/code]
你在获取全部记录时候要处理下.
就是把 " select use.name,sum(use.count) from U use where " + queryCondition+ " group by use.name" 这个hql中from 前面的全部去掉
然后再加上select count(*) 到前面来组装成查询符合条件全部记录的 hql
------解决方案--------------------
不明白你到底要什么
select sum(use.name) from U use .....可以获得总记录数
select use.name,sum(use.count) from U use group by usr.name ...可以获得每个name 的count之和,这个返回的是List<Object []> hibernate标量查询,你查查吧
------解决方案--------------------
select count(use.name) nums, use.name,sum(use.count) from U use where " + queryCondition+ " group by use.name
会使用sum就不会用count了?
------解决方案--------------------
这种统计分组的操作,用HQL来只会乱上加乱
Hibernate擅长的是数据库O-R映射和实体操作,Sum,count,group by这些是数据库的专长,让hibernate来做效率是低得不能再低了
参考一下这篇文章:
http://www.ibm.com/developerworks/cn/java/j-lo-hibernate-jdbc/index.html?ca=drs-cn-0416
------解决方案--------------------
Query query = session.createSQLQuery(sql); 用这个可以直接调sql语句