3
我想按月使用HQL組織一些行,但是我對這個API很陌生,似乎無法讓它工作。HQL:group by month
這裏是我的代碼:
Criteria query = getHibernateSession().createCriteria(SalesPerformance.class);
// summary report is grouped by date
query.setProjection(Projections.projectionList().add(
Projections.groupProperty("effectiveDate"), "effectiveDate").add(
Projections.groupProperty("primaryKey.seller", "seller").add(
Projections.sum("totalSales"))));
// sub-select based on seller id
query.add(Property.forName("primaryKey.seller.id").eq(sellerId)).setFetchMode(
"primaryKey.seller", FetchMode.SELECT);
query.add(Property.forName("primaryKey.effectiveDate").le(new Date()));
query.add(Property.forName("primaryKey.effectiveDate").ge(DateUtils.truncate(new Date(), Calendar.MONTH)));
query.addOrder(Order.desc("primaryKey.effectiveDate"));
return query.list();
我與此查詢的問題是,它會每天返回一行,當我需要每因爲Projections.groupProperty(「EFFECTIVEDATE」)的月一行。
我想過使用Projections.sqlGroupProjection而不是Projections.groupProperty並拋出一些HQL,但我發現的文檔和幾個示例並沒有真正幫助我理解如何將正確的postresql語句放入方法。
任何知道Postgres和HQL的人都可以提供一些提示嗎?
這不使用Hibernate的HQL,這是使用Hibernate的標準。它不應該被標記爲HQL。 – James 2009-10-29 18:32:48