https://programmer93.tistory.com/25
https://blog.naver.com/javaking75/220315971085
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 이부분 (*가 없는 경우 *를 추가)
4. Parameter와 bean의 필드명이 틀린 경우
나의 경우는 3번 + 나의 멍청한 짓으로 이루어진 오류였다...
코드를 이해하지 않은 채로 그대로 따라치거나 복붙만 하면 이런 에러가 발생하기 쉬울 것 같다.
root-context.xml
먼저 <property value="/resources/mappers/*Mapper.xml" 이 부분에서 나의 매퍼는 boardMapper.xml이였지만 그대로 복붙하는 바람에 Mapper.xml로 그대로 쳐버렸다.
이 부분은 이런식으로 수정해주면 된다. (꼭 체크해보길)
그리고 또 하나.
매퍼를 못찾아서 어? 왜 없지? 하고 src/test/resources에 매퍼를 만들고 거기에 모든걸 작성했다.....ㅠㅠㅠ
실제 매퍼는 이렇게 src/main 부분에 따로 있다ㅠㅠㅠ 이런 멍청 한 실수는 하지 않길ㅠㅠㅠ
실제 작동되고 있던 매퍼에 가보니 이렇게 select절에는 아무것도 안 써지고 네임스페이스 이름도 엉망인채로 있어서 다시 수정해주고 실행했더니 잘 됐다ㅠㅠㅠㅠㅠ