반응형
평소처럼 Mybatis를 이용해 SELECT 했는데 아래와 같은 에러가 난다.
### SQL: SELECT SECT, WEATHER_VALUE, WEATHER_CODE, REG_DATE FROM TB_WEATHER WHERE SECT IN ('SKY', 'T3H')
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy74.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy84.getWeatherData(Unknown Source)
Mybatis 쿼리는 아래와 같다.
<select id="getWeatherData" resultType="com.test.weather.WeatherModel">
SELECT
SECT, WEATHER_VALUE, WEATHER_CODE, REG_DATE
FROM
TB_WEATHER
WHERE
SECT IN ('SKY', 'T3H')
</select>
쿼리를 디비에 찍어보면 이렇게 값이 잘 나온다.
DB에 따로 NotNull 속성이 지정된 것도 없고, Mybatis 설정한 것도 없다.
다른 페이지에서 조회되는 데이터들은 NULL값이 포함되어 있더라도 잘 가져온다.
쿼리르 조금 바꿔 SELECT 해올 때 WEATEHR_VALUE와 WEATEHR_CODE는 제외하고 SECT와 REG_DATE만 가져오면 잘 가져온다.
다시말해 WEATEHR_VALUE와 WEATEHR_CODE가 NULL인 경우에만 NullPointer가 뜬다. 왤까...
<select id="getWeatherData" resultMap="weatherMap">
SELECT
SECT, WEATHER_VALUE, WEATHER_CODE, REG_DATE
FROM
TB_WEATHER
WHERE
SECT IN ('SKY', 'T3H')
</select>
<resultMap type="com.test.weather.WeatherModel" id="weatherMap">
<result property="sect" column="SECT" />
<result property="weather_value" column="WEATHER_VALUE" />
<result property="weather_code" column="WEATHER_CODE" />
<result property="reg_date" column="REG_DATE" />
</resultMap>
일단 resultMap으로 해보니 에러가 사라지고 Null값이더라도 다 잘 담아온다. 왜 이런걸까. 일단 일정이 급하니 넘어가긴 하는데 찝찝하다...
반응형
'Java > Spring' 카테고리의 다른 글
[JPA/QueryDsl] 페이징에서의 N+1 해결 기록 (0) | 2022.05.16 |
---|---|
[Spring Security] Servlet Filter 등록과 동작 순서 (1) (0) | 2022.01.12 |
[Spring]WebClient 파라미터 인코딩 (1) | 2021.01.15 |
[Spring][Transaction] 트랜잭션 제외하기, 트랜잭션 제외 안 될 때 (0) | 2020.09.07 |
[Logback] Logback 설정 기록. 프로필에 따라, 패키지에 따라 분리. (0) | 2020.09.03 |