[Spring] Mapped Statements collection does not contain value for.

Q0. 개요

스프링 프레임워크로 개발하면서 Mybatis기반의 XML파일에서 아래와 같은 에러가 발생한 적이 있다.

java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for​ ~

호출해야 할 mapper id를 못찾은 경우이다.1. 자바파일 작성한 Mapper Id와 Mapper파일에서 작성한 Id가 다른 경우.2. 자바파일에서 Mapper파일을 호출할 네임스페이스를 잘못 작성한 경우.3. Mapper파일의 상단에 네임스페이스가 잘못 작성된 경우.4. Mybatis 환경설정에 해당하는 폴더경로에 파일이 존재하지 않는 경우.5. Mapper파일의 네임스페이스가 동일하게 중복되는 경우.

 

Q1. 결론적으로

해당 에러가 발생되는 대부분의 원인은 Mapper Id가 오류이거나 잘못된 네임스페이스를 바라보는 경우가 많다.

때문에, 에러가 발생했을때 위의 내용을 모르더라도 우선 SQL을 DB Developer에서 실행을 시켜본다.

SQL이 정상적으로 동작하는지를 확인하고 문제없다면, SQL을 호출하는 선언부에 오타가 있는지를 확인하면 된다.