Mapped Statements collection does not contain value for ~ 에러 발생시 확인해야 하는 부분

 

1. mapper id가 다를경우 - 대부분 이경우

   - mapper파일에 <select id=''.. 에 id 과 DAO 파일의 매퍼 아이디가 다른경우 

   - ex ) <select id="getUserInfo"       와  sqlSessionTemplate.selectOne("userMapper.getUser",userSeq);

2. mapper에 정의된 namespace 중복될 경우

   - mapper.xml 파일의 <mapper namespace="userMapper"> 가 중복되는지 체크

3. mapper location 세팅 확인 - 경로가 잘 잡혔는지. (프로젝트 처음 세팅을 했는데 안되는 경우 이 부분 확인)

   - classpath*:static/mappers/**/*Mapper.xml 이부분   (*가 없는 경우 *를 추가)

 

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.jcy.usedhunter.dao.BoardMapperselect ### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.jcy.usedhunter.dao.BoardMapperselect

 

해결

 

namespace 뒤에 '.' 을 잊었다. 

String namespace = "com.jcy.usedhunter.dao.BoardMapper";
String namespace = "com.jcy.usedhunter.dao.BoardMapper."; // 마지막에 '.' 잊지 말기

'데이터 접근 기술 > MyBatis' 카테고리의 다른 글

MyBatis 기능 정리2 - 기타 기능  (0) 2022.08.17
MyBatis 기능 정리1 - 동적 쿼리  (0) 2022.08.16
MyBatis 적용3 - 분석  (0) 2022.08.16
MyBatis 적용2 - 설정과 실행  (0) 2022.08.16
MyBatis 적용1 - 기본  (0) 2022.08.16
복사했습니다!