3
私はHQLを使用して月にいくつかの行をグループ化しようとしていますが、私はそのAPIを初めて使用しているため、動作させることができません。このクエリでHQL:月ごとのグループ
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」)の月ごとに1つの行を必要とするとき、日ごとに1つの行を返すために起こっていることである:
は、ここに私のコードです。
私はProjections.groupPropertyの代わりにProjections.sqlGroupProjectionを使用することを考えましたが、いくつかのHQLをスローしましたが、私が見つけたドキュメンテーションとカップルの例は、私が正しいpostresql文を入れて方法。
PostgresとHQLについて知っている人なら、ここでいくつかのヒントを教えてください。
これは、HibernateのHQLを使用していない、これはHibernateの基準を使用しています。 HQLとしてタグ付けするべきではありません。 – James