3

次の NamedQuery を使用していますが、エラーが発生しています

@NamedQueries({
    @NamedQuery(name="getAvailableAmount", query="SELECT sum(tup.tran_amount) FROM TopUpResponse tup"),
    @NamedQuery(name="getUpFrontDiscount", query="SELECT (sum( abs( tup.tran_amount) )*.04) FROM TopUpResponse tup WHERE tup.service='BILLPAYMENT'")
})

内部例外: FailedPredicateException(arithmeticPrimary,{ aggregatesAllowed() }?)

次の形式を試しましたが、それでもエラーが発生します

SELECT FUNC('ABS',tup.tran_amount) FROM TopUpResponse tup

例外の説明: クエリを解析する構文エラー [getAvailableAmount: SELECT FUNC('ABS',tup.tran_amount) FROM TopUpResponse tup]、1 行目、11 列目: [(] での構文エラー。内部例外: MismatchedTokenException(81!=32)

よろしく、イムラン

4

1 に答える 1

1

これは、古いバージョンの EclipseLink のバグのようです。EclipseLink 2.0.0 で同じクエリを試しました。FUNC を使用する 2 番目の名前付きクエリとクエリは、最初の名前付きクエリが機能したのとまったく同じように失敗しています。

EclipseLink 2.3.2 では、3 つのすべてのクエリが期待どおりに機能します。したがって、これらのバージョン間のどこかの問題は修正されました。どのバージョンで正確に修正が導入されたかはわかりません。

できることは、EclipseLink の新しいバージョンに更新することだけです。

于 2012-07-19T18:25:56.420 に答える