日時型のタイムスタンプ フィールドを持つテーブルがあります。定義された開始時間と終了時間の間のデータを、同じ長さの時間間隔を表す x グループに集約する必要があります。ここで、x は関数パラメーターとして提供されます。
Hibernate でこれを行う最善の方法は何でしょうか?
編集:いくつかの説明
mysql テーブル:
data_ts: datetime pk
value1 : int
value2 : bigint
...
エンティティ クラス:
Calendar dataTs;
Integer value1;
BigDecimal value2;
...
次のようなHQLクエリを探しています
select max(c.value1), avg(c.value2) from MyClass c
where c.dataTs between :start and :end group by <interval>
ここで、期間全体が x 個の等しいサイズの時間間隔にグループ化されます。
例:
Start : 2008-10-01 00:00:00
End : 2008-10-03 00:00:00 (2 days)
Groups: 32
1.5 時間 (48 時間 / 32) の時間間隔でグループ化する必要があります。
2008-10-01 00:00:00 - 2008-10-01 01:29:59
2008-10-01 01:30:00 - 2008-10-01 02:59:59
2008-10-01 02:00:00 - 2008-10-01 04:29:59
...