0

実際に別のオブジェクトを使用する休止状態のクエリを介して 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 に固執することをお勧めします。ありがとう。

4

1 に答える 1