次のように、休止状態を使用して、HQL を使用して多数のエンティティの合計を取得できることがわかりました...
public Long getEnvelopeTotal(AbstractEnvelope envelope) {
String query = "select sum(t.amount) from User_Transaction t";
Long result = (Long) hibernateUtil.getSession().createQuery(query).uniqueResult();
return result;
}
現在、アプリケーションの残りの部分は、オブジェクト グラフのみを介してデータベースをシームレスにナビゲートできます。上記の関数を使用しなければならない問題は、次の疑似コードを実行する必要があることです...
- エンティティ「封筒」のインスタンスを取得
- Envelope インスタンス i を渡す
- getEnvelopeTotal の結果に基づいて、Envelope インスタンス プロパティ「total」を結果に設定します。
プロパティ「合計」が単純なデータベース列にマップされるのではなく、カスタム HQL クエリを介して設定されるような方法で hibernate を使用できるかどうか疑問に思っています。
元:
@SomeMagicAnnotation(query="select sum(t.amount) from User_Transaction t")
private Long total;
助言がありますか?