[67일차] Mapped Statement collection does not contain value for~ 에러

저요·2022년 11월 28일

2022 100th day challenge

목록 보기
67/97

서론

오늘은 mybatis의 에러 중 하나인 Mapped Statement collection does not contain value for~ 에러에 대해서 글을 써 보려고 한다.

본론

에러 전체는 다음과 같이 나온다.

java.lang.illegalArgumentException : Mapped Statement collection does not contain value for ~

이런 에러가 발생하는 상황들은 다음과 같다.

  • mapper id가 다를 경우
  • Parameter과 bean의 필드명이 틀린 경우
  • mapper파일에 정의된 네임스페이스와 mapper파일에 접근하는 java에서의 namespace가 다를 경우
  • mybatis config 파일에 mapper가 정의되어 있지 않거나, 스펠링이 틀린 경우
  • mapper에 정의된 namespace 명칭이 같은 어플리케이션 내에 중복될 경우
  • build가 안된 경우

위와 같이 아이디나 네임스페이스가 달라서 mapper가 정의되지 않아서 해당 매핑할 mapper파일을 찾지 못하는 경우 생기는 오류들이니 이것을 고려해서 내가 틀린 부분이 있는지 한 번 더 확인하면 해당 오류는 쉽게 해결할 수 있을 것이다. 나의 경우에는 이 오류를 mapper의 아이디를 잘못 정의해서 마주치게 되었는데 ㅎㅎ.. 이런 사소한 실수들을 하지 않도록 주의하지만 또 사람이다 보니 자주 보게 되는 오류인거 같다. 그래도 원인을 알면 해결하는 것은 쉽다~!

참고

https://blog.naver.com/javaking75/220315971085
https://devfootprint.tistory.com/37

profile
웹개발

0개의 댓글