Mybatis에서 result 타입은 보통 VO를 많이 만들어서 지정해준다.
하지만 그게 안될 때 (VO가 너무 많아서 포기ㅎ;;)
result type 을 보통은 HashMap으로 구성하게 되는데
문제는 Null이 결과인 컬럼은
Map의 키에 저장되지 않는다;;
*******
if ( data == null )
return ;
else
map.put("col_name", data);
******
이런 느낌
덕분에
각 결과맵의 size가 달라질수도 잇는 재미잇는 상황;;
import 할때도 밀려들어갈 수 잇다.
이럴 땐 Mybatis-config.xml 파일에
<setting name="callSettersOnNulls" value="true"/>
다음값을 추가해주면 된다.
*mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="useGeneratedKeys" value="false" />
<setting name="defaultExecutorType" value="REUSE"/>
<setting name="defaultStatementTimeout" value="60"/>
<setting name="callSettersOnNulls" value="true"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
</settings>
</configuration>
내 케이스에는 이 설정파일 자체가 없엇다.
어디서 적용하나 햇더니
* ApplicationContext.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceDB01" />
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:CollectorSQLMap.xml" />
</bean>
sqlSessionFactory 에 저장해주면 된다.
'Develope > DataBase' 카테고리의 다른 글
[MySQL] 바이너리 로그 분석하여 쿼리 조회하기. (0) | 2017.12.14 |
---|---|
[SQL] 쿼리 튜닝 : select 문 안에 서브쿼리 (2) | 2017.12.01 |
[Mybatis/MariaDB] foreach 구문을 이용해서 Insert 대량 삽입하기 (6) | 2017.11.10 |
[Mysql] index 강제로 태우기 (4) | 2017.11.03 |
[Mysql] Select할 때 String 을 Date로 표현하기, 포맷 변환 (2) | 2017.11.02 |