Мы вызываем хранимую процедуру (которая вызывает другую внутри нее) из режима гибернации.
Query query = session.getNamedQuery("query_name");
query.setParameter('param', 'value');
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List returnList = query.list();
Хранимая процедура работает независимо, когда мы запускаем SQL Developer. Но мы запускаем это через приложение, оно выдает следующую ошибку.
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
Вещи, которые мы попробовали:
- вызов простой хранимой процедуры из спящего режима - работает хорошо.
- создание контрольного примера для проверки метода, в котором вызывается хранимая процедура (которая выдает ошибку) - работает хорошо.
Наш вопрос: почему один и тот же запрос работает хорошо в тестовом случае, а не во время работы в приложении?
Любые идеи?
Обновление Это была моя ошибка, я неправильно передал аргументы. Просто поменял местами первые два аргумента. Всем, кто сталкивается с этой проблемой, проверьте порядок аргументов в именованном запросе.
Спасибо.