티스토리 뷰
java.sql.SQLException: 부적합한 열 인덱스
iBatis 사용 시 부적합한 열 인덱스 에러가 발생하는 경우
1. 변수명이 잘못된 경우
👉 iBatis(~sql.xml) 에서 사용하는 변수명이 Java(VO) 에서 생성한 Getter 와 일치하는지 확인
(사용자 Parameter를 받아서 쿼리 실행할 때)
👉 위와 반대로 쿼리의 컬럼명과 VO의 Setter 가 다른 경우
(쿼리 결과를 VO에 담아 리턴할 때)
👉 변수명이 제대로 세팅되었음에도 에러가 발생하는 경우는 순서에 맞게 세팅되었는지 확인
2. 쿼리의 주석에 변수가 포함되어 있는 경우
👉 주석에 변수명이 있는 경우 해당 변수를 주석에 상관없이 참조하려 하는데, 이 과정에서 에러 발생
👉 아래와 같이 주석에 변수명이 포함되어 있는 경우 주석 처리된 변수를 바인딩 대상으로 인식해버리므로 삭제하거나 바인딩 문자를 제거
SELECT
COLUMN_NAME1,
COLUMN_NAME2,
COLUMN_NAME3
FROM TABLE_NAME
WHERE COLUMN_NAME1 = #COLUMN_NAME1#
/* AND COLUMN_NAME2 = #COLUMN_NAME2# */ 👈 변수명이 포함된 주석 삭제
참고자료
댓글