実際に別のオブジェクトを使用する休止状態のクエリを介して count(*) および sum() のオブジェクトを取得しようとしています。これが私がやっていることです:
String query = select new org.rangde.domain.AggregatedCount(count(*), sum(lps.loanAmount - lps.loanPledged - lps.loanRaised)) from LoanProfileSnapshot lps where lps.loanState in (:loanStates)
List<AggregatedCount> counts = getHibernateTemplate().findByNamedParam(query, params, values);
return counts.size() > 0 ? counts.get(0) : null;
これはクラス AggregatedCount (ゲッターとセッターを削除しました)
public class AggregatedCount {
private int id;
private BigInteger count;
private BigDecimal sum;
public AggregatedCount(){}
public AggregatedCount(BigInteger count, BigDecimal sum){
this.count = count;
this.setSum(sum);
}
}
これは、クエリを実行したときに発生する例外です。
Unable to locate appropriate constructor on class [org.domain.AggregatedCount] ... nested exception is org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [org.domain.AggregatedCount] ...
合計を Double と BigInteger にしてみましたが、それでも同じ例外が発生します。
どんな助けでも大歓迎です。最終的なクエリが生成される前にコード内でチェックしている条件がたくさんあるため、これについては findByNamedParam に固執することをお勧めします。ありがとう。