Query query = session.cretaQuery("FROM (your)");
query.setParameterlist();

解决方案 »

  1.   

    可能是我说的太简单了 关键是 GROUP BY strSubject 想要得到 分组后 组的个数
      

  2.   

    Query query = session.cretaQuery("...");
    ScrollableResults scrollableResults = query.scroll();
    scrollableResults.last();
    int totalNumberOfElements = scrollableResults.getRowNumber();
      

  3.   

    五楼的 方法 和list.size 没什么区别吧  能不能再解释的详细点
      

  4.   

    有区别
    用list.size的时候如果数据量大程序马上挂
    而query.scroll则不会
      

  5.   

    刚才我了解了 一下ScrollableResults  性能只比list.size相对的快一些,有没有更好的办法啊
      

  6.   

    你想要快可以,但就是有点麻烦了...
    SELECT COUNT(*) FROM (SELECT strSubject FROM T_Advice GROUP BY strSubject) 
    ========================================
    (SELECT strSubject FROM T_Advice GROUP BY strSubject) 
    这个子查询建成一个view
    然后针对这个view来查,效率肯定比你那样写快,但就是很麻烦了,
    而且没有必要的话,
    就是说查询这段结果次数较多的话,也没什么意义
      

  7.   

    没有办法的话 只有用 原生sql了
      

  8.   

    createSQLQuery(); 可能还方便些.