、HQLクエリが機能しません。 '、'エラーの近くに構文が正しくありません。春を使用して、私は更新クエリとなってエラーを次のコマンドを実行しようとしています
クエリを休止することは、エラー後 を与えている照会=
@Transactional
public List<Order> getClosedOrders(String userID) throws DataAccessException {
try {
String SQL_SELECT_QUERY = "from Order as o where o.orderStatus='closed' and o.account.profile.userId='"+userID+"'";
String SQL_UPDATE_QUERY = "update Order set orderStatus=completed where orderStatus=closed and account.profile.userId='"+userID+"'";
List<Order> orderList = (List<Order>) list(SQL_SELECT_QUERY);
if(!orderList.isEmpty()) {
batchUpdate(SQL_UPDATE_QUERY);
return orderList;
}
return null;
} catch(Exception ex) {
ex.printStackTrace();
throw new DataAccessException(errorMessage);
}
}
は、しかし、クエリが動作している選択であるが、更新のための :
WARN [http-8080-2] (JDBCExceptionReporter.java:71) - SQL Error: 102, SQLState: S0001
ERROR [http-8080-2] (JDBCExceptionReporter.java:72) - Incorrect syntax near ','.
org.hibernate.exception.SQLGrammarException: could not execute update query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84)
at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:334)
at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:209)
なぜこのようなことが起こっているのかわかりません。私はクエリのどこにでも "、"を使用していませんが、それでも不正な構文が近いと言います。 '、' なぜそうですか?これを解決するには? ありがとうございます。すべての
これは本当に変です。気になるのは、userIDにカンマが含まれていることだけですが、あなたがチェックしたと確信しています。 – Till
genereated SQLクエリをログに記録してみます。 – axtavt