0

毎日いくつかのレコードを含むテーブルがあり、各レコードには日時を表す列があります。日ごとのレコード数を選択したいのでJPQL、次のようなクエリで作成したいと思います。

SELECT COUNT(*) FROM ORDERS o GROUP BY TRUNC(o.ORDER_DATE)

残念ながら、... :( どうすればこれを行うことができますかJPQL?TRUNC

4

4 に答える 4

1

キャストを使おう!それはうまくいく

@Query("select new DBClass(COUNT(c.field1) as count,cast(c.created as date)) from Table c GROUP BY cast(c.created as date)")
于 2020-02-07T08:55:06.117 に答える
0

動作するかどうかわかりませんが、メソッド関数を使用しましたか? それは次のようなものになります

Expression<Date> truncExpr = cb.function("TRUNC",Date.class,orders.get("orderDate"),"MM");
criteria.groupBy(truncExpr);
于 2012-05-21T15:51:43.310 に答える
0

JPQL クエリを解釈するときの Hibernate は、それが知っている関数をすべて理解します。使用している方言が TRUNC を理解していれば問題ありません。そうでない場合は、TRUNC 関数を登録するカスタム方言を作成します。

于 2012-05-21T21:03:04.523 に答える