Что не так в этом вопросе? СообщениеЧто случилось с этим запросом sql, чтобы вызвать эту ошибку?
" where mh.parent_id = ? "+ (roleIds != null ? " or mh.role_id in (" + roleIds + ")" : "") +
Ошибка:
PreparedStatementCallback; Плохая грамматика SQL [select u.id, u.user_id, count (distinct pf.id), IfNULL (upm.grievance_autoassign_enable, true) от пользователей u внутреннее соединение user_roles ur на ur.user_id = u.id left external join user_preference_management upm on u.id = upm.id внутреннее объединение management_hierarchy mh on mh.child_id = u.id или mh.role_id = ur.role_id left external join (jbpm4_task jt внутреннее соединение process_flow pf на pf.pid = jt.execution_id_ и pf.grievance_mgmt_id is не null) на jt.assignee_ = u.user_id где mh.parent_id =? или mh.role_id в ({role_id = 2}, {role_id = 4}, {role_id = 1}, {role_id = 8}, {role_id = 38}, {role_id = 22}, {role_id = 69}) группе по u.id, u.user_id порядок по счету (pf.id)]; Вложенное исключение - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '= 2}, {role_id = 4}, {role_id = 1}, {role_id = 8}, {role_id = 38}, {role_id = 22 }, {role_id = 69}) 'в строке 1
Какой тип 'roleIds'? Из SQL в сообщении об ошибке, похоже, это может быть список какого-то объекта? Вам нужно будет превратить его в список, разделенный запятыми только номерами, без '{role_id =}'. – andersschuller
Где находится остальная часть запроса и код Java? – jbx
Спасибо за ответ, ЭРВО Teh всего запроса, –