2013-02-21 34 views
1

當DetachedCrieria有投影時,如何獲取DetachedCriteria結果集的行數?對於HQL:如何實現Subqueries.rowCount(DetachedCriteria dc)

從(按名稱從分數組中選擇姓名,總和(等級))選擇計數(*)。

對於hibernate,如何實現Subqueries.rowCount(DetachedCriteria dc)?謝謝。

回答

0

如果你想要的是計數爲什麼不執行

select count(name) from score group by name 
+0

沒有。這是一個普遍的要求。我們有一個DetachedCriteria。如何獲得查詢結果的大小? – Dave 2013-02-22 04:05:11

+0

執行它並查看返回的數字或結果? detachedCriteria.getExecutableCriteria(session).list()。size() – overmeulen 2013-02-22 08:53:04

+0

如果結果集有數百萬個實體,它會檢索所有實體,然後計算其大小?如果它依賴於數據庫,那麼mysql如何?謝謝。 – Dave 2013-02-22 21:07:27

0

我有同樣的問題...我想出了以下解決方案,它的工作:

myCriteria.setProjection(Projections.sqlProjection("count(*) as count from (select distinct id , {alias}.enteredDate ", new String[] { "count" }, new Type[] { StandardBasicTypes.LONG })); 

// this is needed to close the parentheses opened in the Projection 
myCriteria.add(Restrictions.sqlRestriction(" 1=1)")); 
+0

最好在Hibernate中擴展一個類並實現它。即,將選擇計數(*)添加到生成的DetachedCriteria的SQL中。但還沒有想出如何。感謝分享。 – Dave 2013-03-10 05:29:06