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