Я пытаюсь выполнить следующий запрос на обновление и получаю сообщение об ошибке,
Запрос =
@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);
}
}
Однако запрос Select работает, но для запроса на обновление он выдает следующую ошибку:
WARN [http-8080-2] (JDBCExceptionReporter.java:71) - Ошибка SQL: 102, SQLState: S0001
ОШИБКА [http-8080-2] (JDBCExceptionReporter.java:72) - Неверный синтаксис рядом с ','.
org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос на обновление
в org.hibernate.exception.SQLStateConverter.convert (SQLStateConverter.java:67)
в org.hibernate.exception.JDBCExceptionHelper.convert (JDBCExceptionHelper.java:43)
в org.hibernate.hql.ast.exec.BasicExecutor.execute (BasicExecutor.java:84)
в org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate (QueryTranslatorImpl.java:334)
в org.hibernate.engine.query.HQLQueryPlan.performExecutejp:209)
Я не понимаю, почему этос происходит.Я не использую "," где-либо в своем запросе, но все же он говорит, что неправильный синтаксис рядом с ',' Почему это так?Как это решить?Заранее спасибо.