Процедура хранения вызовов JPA вернула неверный результат

Я использую собственный запрос JPA для вызова хранимой процедуры и сопоставления возвращаемого результата с классом

createNativeQuery(String sqlString, Class resultClass);

Здесь sqlString — это хранимая процедура в таком формате:

{call storeProcedureName parameter1, paramter2, parameter3}

Я заметил, что когда один из параметров содержит косую черту (/), результат будет неверным. Кто-нибудь сталкивался с этой проблемой раньше и как ее решить? Благодарность

Я использую сервер EclipseLink и Glassfish.


person neo    schedule 04.07.2012    source источник
comment
Вам придется немного отладить, чтобы увидеть, правильно ли передан параметр хранимой процедуре или это хранимая процедура, которая не может обрабатывать прямую косую черту, как ожидалось.   -  person Chris    schedule 05.07.2012


Ответы (1)


Вы встраиваете параметры в свой SQL или используете параметры в своем запросе? Вы должны использовать параметры в своем запросе, встраивание параметров в SQL очень плохо (может привести к атакам SQL-инъекций).

См. http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Native#Parameters

person James    schedule 05.07.2012