Backend/Spring

[Spring / MyBatis] org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

김세진 2022. 10. 5. 13:48
반응형

 

오류

 

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

 

문제

 

MyBatis를 사용하는 Spring Boot 프레임워크에서 DB 커넥션 테스트 이후 Service를 테스트하는데 위 오류와 마주하게 되었다. 서칭 결과 다음과 같이 원인을 정리할 수 있었다.

 

  • Mapper.xml 파일 쿼리문에 오타가 존재
  • 쿼리문의 메서드 id가 mapper 인터페이스와 불일치할 때
  • Mapper.xml 경로 설정이 잘못되어 불러오지 못할 경우

 

필자의 경우 Mapper.xml 파일을 resources 밑이 아닌 java 패키지 밑에 작성하였었는데, 별도 설정을 하지 않아 Maven 에서 Mapper를 resources 패키지 하위에서만 불러들이는 것이 문제였다.

 

 

별도 설정이 없다면 이 패키지 밑에서만 불러온다는 것!

 

해결

 

<build>
   <resources>
      <resource>
         <directory>src/main/java</directory>
         <includes>
            <include>**/*.xml</include>
         </includes>
      </resource>
   </resources>
</build>

 

위 코드를 pom.xml에 추가함으로써, xml 리소스를 읽는 경로를 java에까지 확장하여 해결할 수 있었다.

 

 

 

 

반응형