Invalid bound statement (not found) 해결 방법
1. Mapper 인터페이스와 XML 오타 확인
ID값이나 Mapper 인터페이스의 메서드명과 다른지 확인해보는 것이 좋다.
혹은 인터페이스의 이름과 XML 파일에 선언된 이름이 달라서 생기는 경우도 있다.
2. mapper-locations
쿼리가 작성되어 있는 mapper XML이 위치한 경로를 application.properties에 정의하지 않거나
또는 잘못 선언된 경우 발생한다.
mapper가 있는 경로로 application.properties에 정확한 경로로 변경해주면 된다.
mybatis.mapper-locations:classpath:mapper/*.xml
3. 동일한 이름이나 다른 패키지 경로
Mapper의 이름은 같지만 패키지 이름이 달라서 컴파일 오류가 발생하는 경우이다.
이런 경우는 애플리케이션 구동 과정에서 오류가 발생하지 않아서 직접 확인해야 한다.
4. yaml 파일 오타
설정 파일을 properties가 아닌 yaml 파일에 작성할 경우에 들여쓰기를 잘못해 오류가 발생할 수 있다.
예를 들어서 최상단에 선언된 spring 하위에 위치하는 것이 아닌 최상단에 mybatis가 위치해야 합니다.
설정 파일 내에서 잘못된 들여쓰기로 다른 설정값이 정상적으로 읽히지 않을 수 있으므로 확인해봅시다.
5. DataSource Configuration
DataSource를 설정하는 Configuration 클래스를 점검할 필요가 있습니다.
SessionFactory가 설정된 경우 setMapperLocations 메서드 등으로 Mapper XML의 위치를 선언하는데 의도대로 잘 설정되어 있는지 확인해봅시다. @MapperScan이 선언된 경우에는 Mapper 인터페이스가 있는 위치와 일치한지 확인해봅시다.
'ETC > Error' 카테고리의 다른 글
[Eclipse] 이클립스 레이아웃 초기화 (0) | 2024.04.04 |
---|---|
Error: Unable to access jarfile (0) | 2024.02.26 |
[JAVA] variable answer might not have been initialized (0) | 2024.02.14 |
[JAVA] ArrayIndexOutOfBoundsException (0) | 2024.02.14 |