Mybatis를 이용하여 mapper.java와 mapper.xml 생성 후 테스트 코드를 실행을 하였습니다.
testRead 실행 결과는 이와 같았습니다
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ceojun7.mapper.MemberMapper.read
MemberMapper.read를 찾을 수 없다는 뜻이였습니다.
오류가 날만한 상황은 이와 같습니다
1. com.ceojun7.mapper.MemberMapper 인터페이스에서 read라는 메소드가 정의되어 있지 않은 경우
2. MemberMapper.xml 의 오류 ( 코드누락 등 )
3. MemberVO의 오류
확인해보니 모두 정상적으로 작성이 되어있었습니다.
4. root-context 설정의 오류
다음과 같이 mybatis scan도 잘 되어있었고
네임스페이스도 이와 같이 적상적으로 작성되어있었습니다.
고민을 하던 중,
resources의 경로가 잘못되어있을 수도 있겠다는 생각이 들었습니다. ( 어쩌다가 그런 생각을 했을까요? )
그리고 인텔리제이의 설정을 변경했습니다.
톱니바퀴 모양 클릭 후
Flatten Packages 체크 해제
체크를 해제하면 이와같이 패키지들이 묶이지 않게 됩니다.
체크를 해제했지만
resources 밑의
com.ceojun7.mapper는 패키지들이 아직도 묶여있는걸 확인했습니다.
그 이유는 resources 하위 폴더들은 .(점) 을 하나의 문자열로 인식하는 것이 이유였습니다.
그래서 com/ceojun7/mapper 가아닌 하나의 폴더였던 것이였습니다.
그래서 이와 같이 수정했습니다.
폴더를 하나씩 만들어주고 MemberMapper.xml을 옮긴 후
오류가 해결되었습니다.
'Error' 카테고리의 다른 글
NullPointException.. (0) | 2023.04.21 |
---|