본문 바로가기
웹개발지식쌓기

[back] java.sql.SQLException: 부적합한 열 이름

by developer_j 2024. 1. 25.
728x90
반응형

잘 되던 화면이 갑자기 빨간줄 띄우면서 500에러가 나기 시작

 

### Cause: java.sql.SQLException: 부적합한 열 이름
; bad SQL grammar []; nested exception is java.sql.SQLException: 부적합한 열 이름
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)

 

그래서 문제가 발생한 쿼리를 오라클로 돌려봤는데 아~~~무 이상 없었다

이런 경우 쿼리와 자바소스가 제대로 매핑이 되지 않아서 그런거라는데,
쿼리로 가져오는 컬럼명이랑 resultMap의 property를 비교해봐도 다른 게 없었다..

고 생각했지만!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111

컬럼 하나가 빠져있었음

 

<문제가 발생한 구조의 resultMapping + list 쿼리(예시)>

<resultMap id="mapItemList" type="ItemVO">
    <result property="itemSeq"			column="ITM_SEQ"/>
    <result property="itemDivisionCode"		column="ITM_DIVISION_CD"/>
    <result property="itemName"			column="ITM_NM"/>
    <result property="itemImageUrl"		column="ITM_IMG_URL"/>
    <collection property="relatedItemSeqList" column="{itemSeq=ITM_SEQ}" select="com.front.sqlmap.mappers.item.getRelatedItemList"/>
</resultMap>

...

<sql id="getCourseListByRealmTbl">
	SELECT 
		ITM.ITM_DIVISION_CD
		, ITM.ITM_NM 
		, ITM.ITM_IMG_URL
		, FI.IMG_NM AS THUM_IMG_NM
		, ROW_NUMBER() OVER(ORDER BY ITM.ITM_SEQ DESC ) AS RNUM
	FROM TB_SALES_ITM_GOODS ITM
	INNER JOIN TB_CMM_IMG FI ON ITM.ITM_SEQ = FI.ITM_SEQ
	...
</sql>

...

<sql id="getRelatedItemList">
	SELECT 
		RELAT_ITM_SEQ
		, ITM_SEQ
		, ITM_NM 
		, ORD
	FROM TB_SALES_ITM_GOODS
	WHERE ITM_RELAT_SEQ = {itemSeq}
</sql>

 

그렇다.. collection으로 가져오는 부분에 사용되는 컬럼이, list 쿼리에서 빠져있었따

다른 페이지에서 사용하려고 collection을 추가한 거라 미처 신경쓰지 못했다..

근데 부적합한 열 이름이라길래 열 이름이 잘못된 줄 알았지 열 자체가 빠진 줄 ... 은... 몰랐네

이거때문에 3시간 날린 게 넘무너무 속상하당ㅋㅋㅋ ㅠㅠ

 

따끈따끈하고 멍충망충한 오류 기록.. 끝

728x90
반응형