iteye_19173 2009-03-04 11:17
浏览 354
已采纳

当HQL分页求count总行遇到distinct时怎么办?

如题,用Hibernate做分页,当HQL查询语句中包含distinct时,就不能正确count出结果集总行数,如:
String hqlQuery = "select distinct u.name,g.group from UserInfo u left join u.group g";

一般情况下,用该HQL求结果集总数,构建一个count hql语句

String hqlCount = "select count(*) from UserInfo u left join u.group g";

但这样出来的结果明显和原sql有差距(HQL居然不支持count(1)郁闷)

大家指点一下,如上hql要怎么样重建才能正确的count出结果总数,都研究好一两天了!

注:不希望直接query返回list.size,这样数据有压力,网络也有压力。

{
Query query = session.createQuery(hqlQuery);
long count = query.list().size();
}
这样有很大的效率问题,就是想优化它 :cry:
[b]问题补充:[/b]
To:碧海山城

我那样不得行哈,结果集并不只有一列一行,query.uniqueResult()会报错的

  • 写回答

1条回答 默认 最新

  • bhscHello 2009-03-04 12:17
    关注

    [code="java"]
    String hqlCount = "select count(*) from UserInfo u left join u.group g";

    ((Integer) query(countSql,booleanIsSql,values).uniqueResult()).intValue()

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗