[Spring Boot, Mybatis] 문제해결 : Select 해온 값의 VO객체가 null일 때


오늘은 신나는 에러의 날..인 동시에 바로바로 해결을 하는 날!

DB에서 Select해온 VO객체를 확인해보니 null로 들어오더라구요?

 

어?? 이상하다?? 해서 유심히 보니...

 


원인

DB에서는 _(언더바)를 이용해서 컬럼명을 선언했고,

VO 객체에서는 변수를 카멜케이스로 선언을 해서 생기는 문제였습니다.

생각해보니 Mybatis 설정에 _(언더바)를 camelcase로 맵핑해주는 설정을 세팅안해놨더라구요.

 

 

해결

Mybatis 설정 중 map-underscore-to-camel-case 설정 값을 true로 세팅해서 해결했습니다.

mybatis.configuration.map-underscore-to-camel-case=true

다른 해결방법으로는 VO객체의 변수를 DB와 같은 _(언더바) 형식으로 통일시켜주면 됩니다. (반대로 해도 되고..)

 예) Table의 컬럼명이 case_id라면 VO객체의 값을 받을 변수는 카멜케이스(caseId)가 아닌 컬럼명과 동일하게 case_id로 변수명을 통일해주시면 됩니다.

 


뭐 이런 초보자같은 실수만 연발하는지..

아마도 세팅을 한다고는 해도 꼭 몇몇개씩 빼먹고 진행해서 그런 것 같네요.

워낙 세팅보다는 개발에 더 많은 시간을 쓰다보니...

저번에 DB 연동할때 여러 테스트도 진행을 할 걸 그랬네요. (쩝..)

그냥 연동시켜놓고 된다! 하고 끝냈었으니... 이제와서 이런 문제가..

어쨌든 이걸로 이제 RestController에서 DB와 연동되어 받는 값들은 문제 없이 받아지고 있습니다. (아싸)

 

 

버전정보 (v1.0)

 - v1.0 2020.08.06 배포

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com

 

+ Recent posts