[JPA] 쿼리는 올바른데 자바에 담길 때 자꾸 null로 찍힐 때

김희주·2023년 1월 27일
0

자잘한 Tip

목록 보기
2/8
post-thumbnail

1. 문제

		List<Map<String, Object>> browswerTotalList = notiSendTbRepository.totalTokenByBrowser(CommonCode.GROUP_CODE_BROWSER.getValue()); 

해당 서비스를 실행하고

browserChartColumn[i] = String.valueOf(browswerTotalList.get(i).get("TK_CNT"))

이렇게 map에 담으려고만 하면 값이 null로 찍혔다...돌아버리는 줄 알았고 삼십분이나(^^) 삽질 끝에 문제점을 알아냈다. 장난하나...겁나 단순한 실수였다.

2. 해결

SELECT a.tdate, tk_cnt FROM (
SELECT TRUNC(TO_DATE(:endDt,'YYYY-MM-DD')) +1 - LEVEL AS tdate FROM dual CONNECT BY LEVEL <= :n) a
LEFT OUTER JOIN
(SELECT count(client_token) AS tk_cnt, TO_CHAR(CREATE_DT,'YYYY-MM-DD') AS tdate FROM CLIENT_DATA_TB
WHERE create_dt BETWEEN TO_DATE(:startDt,'YYYY-MM-DD') AND TO_DATE(:endDt,'YYYY-MM-DD')
GROUP BY TO_CHAR(CREATE_DT,'YYYY-MM-DD') ) b
on a.tdate = b.tdate
ORDER BY a.tdate asc

SELECT문에서 tk_cnt로 값을 넘겨주는데
자바에서는 get("TK_CNT")로 값을 받으려고 하니까 해당 변수를 찾을 수 없어 null로 담긴거였다^^
하하하하....

profile
백엔드 개발자입니다 ☘

0개의 댓글