私は次のコードを実行しようとしています:私は、私は次の例外を取得んJPQLネイティブクエリ
public BigDecimal valuate(String searchTerms, String categoryPath) {
Query query = em.createNativeQuery("SELECT SUM(maxBidAmount)/COUNT(maxBidAmount) FROM Item WHERE MATCH(title) AGAINST(':searchTerms') AND categoryPath=':categoryPath'", Double.class);
query.setParameter("searchTerms", searchTerms);
query.setParameter("categoryPath", categoryPath);
double value = (double) query.getSingleResult();
return new BigDecimal(value);
}
:
Exception Description: Missing descriptor for [class java.lang.Double].
私はDouble.class
を削除し、I別の例外を取得します。
これで、JPQLでCOUNTとSUMを使用する正しい方法が不思議です。
hibernate 4とOracleドライバで明示的に指定された型がない場合は、クラスとしてNumberを取得します。これはNumber#intValue()で使用できます。 'Double.class'の代わりに' Number.class'を試してみてください。 int値=((数値)query.getSingleResult())。intValue(); – eckes