무엇이 잘못 되었는지 이해할 수 없으며 많은 시간을 queryForList (..) 메서드에서 내 String 객체를 가져 오는 데 많은 시간을 소비했습니다. 그래서 여기에이 바보 같은 SQL 쿼리 :Spring JdbcTemplate with parameter returns 빈 목록을 반환합니다.
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);
추신 : 여기
내가 방법을 사용하는 방법, 방법입니다 getEmailById ("DN270391RKA") - 전달 된 사용자 ID 매개 변수입니다. 공백이 없습니다. 테이블의 ld.LDAP_EMAIL1 필드의유형이다 : 나쁜 아이디 또는 SQL 쿼리 중 하나가 정확하지 않은 것 같다 있도록 NVARCHAR2 (381 CHAR)은
db에'ldap_login'과'ldap_email1' 문자열이 있습니까? 사용자 ID를 SQL 쿼리에 "하드 코딩"하면 결과가 나타 납니까? – icza
"나는 이것을 ''없이 시험해 보았습니다. '' 매개 변수이며 완벽하게 작동합니다. " 이 문장에 의해 나는 하드 코딩 된 매개 변수를 시도하고 작동한다는 것을 의미합니다. –
필자가 의도 한 것은 사용자 ID를 "하드 코드"한 것입니다. 예를 들어, FROM ... WHERE ld.ldap_login = 'exampleUserId' " – icza