对HQL进行简单处理
去掉from前面的和order by语句
整成select count(*) from XX where XX的形式

解决方案 »

  1.   

    直接count(pk)
    不要用size
      

  2.   

    Query queryObject = session.createQuery("select count(*) from XXX xxx");
    Integer count = (Integer)queryObject.uniqueResult();
      

  3.   


    count(*)与count(pk)是等同的
      

  4.   

    分析hql,去掉order by.进行count(*)是正解
      

  5.   

    我没试过不知道正确性,从楼上的两种方法来看,如果都是正确可行的话,明显用count(*)的效率更高一点。
    LZ可以自己试验一下。
      

  6.   

    楼主的做法是把会把所有的记录都读一遍。自然会很慢。建议使用HQL count(*).