이거 뭐라 오류가 난 것도 좀 거시기 하고 해서 쓰기가 애매하긴 한데, 아무튼.

Springboot 2.7.8 버전에서 Controller > Service > ServiceImpl > mapper > sql 로 이루어지는 과정에 있어 Return VO가 null 인 것을 확인했다.

 

쿼리도 그렇고 VO도 그렇고 아무런 문제가 없는것임에도 불구하고 도저히 뭐가 문제인지를 모르겠어서, sql에서 resultType을 VO가 아닌 java.util.hashMap 으로 받아보았더니 정상적으로 DB 쿼리가 조회되는데, Key 값이 스네이크 케이스로 들어온 것을 확인했다. 이러니까 카멜케이스 기반으로 작성된 vo에 매핑이 안되어서 null이 뜨는거지.

 

그런데 이게 대체 왜 지금와서 문제지? 지금까지 수행해온 프로젝트에서는 이거 다 매핑이 되었는데? 싶었다.

대충 찾아보니 mybatis 에서 이걸 옵션값으로 넣어주어야 한다는데, 내가 처음부터 밑바닥부터 세팅한 프로젝트는 지금이 처음이라서 그런가 싶었다.

 

아무튼, application-local.properties에 아래와 같이 넣어주니 스네이크 케이스의 컬럼값이 카멜케이스의 vo 값에 잘 넣은것을 확인할 수 있었다.

1
2
3
 
mybatis.configuration.map-underscore-to-camel-case=true
 
cs

 

와 진짜 별거 아닌걸로 30분은 날린 것 같네. 지금까지는 어디선가 이 옵션을 누가 넣어줬던걸 썼나... 

블로그 이미지

김생선

세상의 모든것을 어장관리

,