JdbcTemplate проблемы с вложенными запросами - PullRequest
0 голосов
/ 02 сентября 2011

Я пытаюсь использовать вложенные запросы с JdbcTemplate, но обнаружил проблему, мне кажется, что она не поддерживает вложенные запросы. Я прав?или что мне нужно изменить?

Итак, я вызываю

 getJdbcTemplate().query(request, new Object[]{name}...) 
 // request is query which you can see in error message

, который дает результаты в оракуле, но не удается с

org.springframework.jdbc.InvalidResultSetAccessException: PreparedStatementCallback;недопустимый доступ ResultSet для SQL [выберите имя sq.name в качестве имени (выберите имя t1.name в качестве имени из таблицы1 t1 левого внешнего объединения таблиц2 t2 для t2.id = t1.fk_id, где t1.name не является нулевым) sq, где верхний(имя) как верхний ('?')] ;вложенным исключением является java.sql.SQLException: недопустимый индекс столбца

EDITED

запрос - это простой объект String, который на самом деле представляет собой sql, который вы видите в сообщении об исключении.Объект eturn не имеет значения в этой ситуации, так как я оставил его пустым (для проверки нашего предложения)

, но только для вас, чтобы быть уверенным, что он здесь:

List<MyObject> list = getJdbcTemplate().query(request, new Object[]{"Somename"}, new RowMapper() {
           public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
               return new MyObject();
           }
       });

1 Ответ

2 голосов
/ 02 сентября 2011

Попробуйте изменить upper('?') на upper(?). Помещая ? в кавычки, база данных не понимает, что вы имеете дело с параметром.

...