myBaitis 3.2.2 버전 이후로 resultType에 HashMap(or Map)을 사용하거나, 전자정부 프레임워크를 사용할경우 EgovMap을 사용하게 되면
데이터가 Null인 컬럼은 Map의 KeySet에 제외가 된다...재미 있는건...모든 row의 null컬럼이 제외 되거나 포함이 되는게 아니라,
특정 row에 null인 컬럼이 있으면 해당 컬럼만 제외가 된다는 것이다..
(sqlMapper일 경우 해당 되는데 sqlMap에서는 어떤지 모르겠다...)
이게 무슨 말이냐...예로
A |
B |
C |
가 |
가 |
null |
나 |
null |
나 |
다 |
다 |
다 |
이렇게 데이터가 있는 경우 조회를 해서 Map으로 결과를 받게 되면,
{A=가, B=가}
{A=나, C=나}
{A=다, B=다, C=다}
이렇게 아주~ 웃기는 데이터가 나오는 것이다...ㅡㅡ;;;
왜 이렇게 했는지는 모르겠지만 다행이 옵션으로 null인 컬럼도 조회 되게 제공을 하고 있다.
(나는 전자정부프레임워크를 사용하기 때문에, 전자정부프레임워크 기준임...ㅋ)
sql-mapper-config.xml 파일에 <configuration></configuration> 태그 안에다 아래 내용을 넣어 주면 된다.
<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>
다른거와 마찬가지로 반나절 삽질 한거 같다...ㅡㅡ;;; DB가 개발서버와, 운영서버, 테스트 서버로 나눠저 있다 보니...DB커넥션 정보가 잘못 된줄 알고....아놔...ㅡㅡ;;;
끝!!