Я не могу понять, что с ним не так, я потратил много часов, пытаясь получить мой объект String из метода queryForList (..) и все для ничего. Итак, вот этот глупый sql запрос:Spring JdbcTemplate с параметром возвращает пустой Список
String GET_EMAIL_BY_LDAP = "select ld.LDAP_EMAIL1 from IPS.ldap ld where ld.ldap_login = ?"
Я пробовал это и без '?' параметр и работает отлично.
Вот так, как я использую метод:
List<String> email = jdbcTemplate.queryForList(GET_EMAIL_BY_LDAP, String.class, userId.toUpperCase());
И эту версию метода также возвращает пустой список:
List<String> email = jdbcTemplate.queryForList(GET_EMAIL_BY_LDAP, new Object[]{userId.toUpperCase()}, String.class);
P.S. getEmailById ("DN270391RKA") - это мой идентификатор пользователя, который прошел. У него нет пробелов.
Тип поля ld.LDAP_EMAIL1 в таблице: NVARCHAR2 (381 CHAR)
Строки 'ldap_login' и' ldap_email1' в db? Получаете ли вы результат, если вы «жестко кодируете» идентификатор пользователя в SQL-запрос? – icza
«Я тоже пробовал это без?» параметр, и он отлично работает ». Под этим предложением я имею в виду, что я пробовал жестко закодированный параметр, и он работает. –
Я имел в виду «жесткий код» идентификатор пользователя, например: '' select ... FROM ... WHERE ld.ldap_login = 'exampleUserId' "' – icza