728x90
🔍 Map에서 key값이 소문자로 변환되어 들어가는 현상
쿼리로 던져줄 Map에 put을 하는데 카멜표기법으로 넣은 key값이 자꾸 소문자로 변환이 되었다.
쿼리 파라메터에는 당연히 NULL이 들어갔고 원하는 데이터를 얻지 못했다.
💡 첫번째 해결 방법
map.put("$USER_LANG_TYPE", userLangType)
위와 같이 대문자에 언더바로 키값을 변경해주었더니 카멜표기법으로 데이터가 잘 들어갔다.
콘솔에 찍힌 쿼리에도 파라메터가 잘 들어갔다 ㅎㅎ
💡 두번째 해결 방법
데이터는 잘 나왔지만 다른 방법이 있지않을까 하는 마음에 회사 선배에게 여쭤봤다.
컬렉션을 사용하면서 키값 앞에 달러기호($)를 쓰는 경우에는 해당 버그가 발생할 수도 있다고 했다.
확실한 원인은 안바쁘실 때 각잡고 물어봐야겠다🤤
Map sendParamMap = new HashMap();
.
.
.
sendParamMap.clear();
sendParamMap.putAll(mapUtil.copyMap(confirmMap));
sendParamMap.put("$userLangType", userLangType);
새로운 Map에 putAll()을 사용해 원하는 map을 복사해 넣고 보내면 키값이 그대로 유지되면서 보내진다고 한다.
(나는 기존에 파라메터를 보낼 때 사용하던 Map을 clear() 한 후 복사해줬다.)
잘 들어간다!!
728x90
'Backend > Java' 카테고리의 다른 글
[JAVA]오버로딩(overloading)과 오버라이딩(overriding) (0) | 2024.01.05 |
---|---|
[Java]List에 Map을 add할 때 같은 값이 반복되어 들어가는 현상 (0) | 2023.11.10 |