2012-04-14 45 views
0

我想知道如何在hibernate中創建groupby。 我的代碼如下,但它不能正常工作,請告訴我如何做到這一點:hibernate groupby

Session session = getSession(); 
Criteria c = session.createCriteria(CardLog.class); 
c.add(Restrictions.ge(CARD_PUNCHING_TIME, todaysDate)); 
c.setProjection(Projections.groupProperty(USER_ID)); 
c.addOrder(Order.desc(USER_ID)); 
cardLogList = c.list();     
System.out.println("----------------" + cardLogList); 
+0

而正是不工作?有沒有錯誤?當你使用'hibernate.show_sql = true'啓用[sql output](http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html)並且啓用' org.hibernate.SQL'Logging – andih 2012-04-14 07:26:58

+0

當你使用'group by'時,通常會使用聚合函數(sum,count,max,min)。你想從數據庫請求什麼?換句話說,你的要求應該返回什麼? – 2012-04-14 13:47:39

回答

0

我認爲你必須使用類似這樣的

Session session = getSession(); 
Criteria c = session.createCriteria(CardLog.class); 
c.add(Restrictions.ge("bean property todaydate", todaysDate)); 
c.setProjection(Projections.groupProperty("bean property userId")); 
c.addOrder(Order.desc("bean property userId")); 
cardLogList = c.list();     
System.out.println("----------------" + cardLogList); 
+0

我的列表(cardLogList)是databean列表,所以它不允許我添加投影列表。 – user1138766 2012-04-16 09:34:07