0

このコードを実行しているとき(JPA)

   Query q=entityManager.createQuery(SELECT mc.account_no,mc.expiry_date,
         SUM(CAST(CONCAT(mc.sign,mc.balance) AS NUMBER)),mc.moneybank_id FROM muthutcardbalance mc
     WHERE mc.account_no='20' AND mc.scheme_code='MCB' AND mc.expiry_date >= '2015-07-28' 
 GROUP BY mc.expiry_date,mc.account_no ,mc.moneybank_id ORDER BY mc.expiry_date )

次のエラーが発生します。これに打たれました。

java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
Exception Description: Syntax error parsing the query [SELECT mc.account_no,mc.expiry_date,SUM(CAST(CONCAT(mc.sign,mc.balance) AS NUMBER)),mc.moneybank_id FROM muthutcardbalance mc WHERE mc.account_no='20' AND mc.scheme_code='MCB' AND mc.expiry_date >= '2015-07-28' GROUP BY mc.expiry_date,mc.account_no ,mc.moneybank_id ORDER BY mc.expiry_date ], line 1, column 49: unexpected token [(].

私はEclipseLink 2.0でJPA 2を使用しています。

クエリの何が問題になっていますか?

しかし、この SUM(CAST(CONCAT(mc.sign,mc.balance) AS NUMBER)) を削除すると正常に動作します

4

1 に答える 1

0

createQueryはパラメーターとして文字列を想定しているため、クエリ文字列を二重引用符で囲む必要があります

entityManager.createQuery("select * from dual")
于 2015-07-28T13:21:07.187 に答える