Mapped Statements collection does not contain value for
Spring Mybatis Error 해결 방법
Error : java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ~
1. mapper id Check!!
mapper 파일 ( 쿼리문을 모아두는 xml파일 ) 에서 <select id='seungje'></select>
seungje가 쿼리문이 호출되는 DAO와 같은 java파일에서 값이 같아야 하는데, 다르면 에러가 발생합니다.
dao에서 seungje라는 select 쿼리문을 부르고 싶은데 id가 다르니 부를 수 없는 것이죠
2. Parameter와 bean의 필드명이 틀린 경우
3. mapper 파일 namespace 가 다를 경우
1번과 비슷한 개념인 것 같습니다 해당 쿼리문을 호출할 때 namespace와 id를 통해 부르게 되는 것이죠
namespace로 mapper 전체를 찾고 id를 통해 그 안에서 요청한 쿼리를 찾게 되는 것입니다.
4. mapper에 정의된 namespace 중복될 경우
당연히 다른 경우에 문제가 되면, 중복될 경우에도 문제가 되겠죠? 2개 중에 어떤 걸 찾아야 할지 모르니까요~
5. MyBatis config 파일에 정의가 되어 있지 않거나 Spelling이 틀린 경우
MyBatis 설정파일로써 config dtd를 입력하고 밑에 <configuration> </configuration> 태그를 만들어 주지 않으면
에러가 발생합니다 반드시!! 빈 태그라도 만들어 주셔야 합니다.
추가적으로 설정은 config이고 쿼리문을 모아두는 곳은 mapper입니다 2개의 dtd가 다릅니다 꼭 확인하세요