Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for getAntibioticsFrequency
스프링과 마이바티스를 쓰는 나는.. 어느 날, 에러를 마주하였다.
그것은 바로 SELECT을 하는 쿼리의 id값을 매핑된 상태에 포함하지 못하여 발생한 에러이다.
문제의 원인을 파악하지 못해 긴 시간을 허비하였으나, 끝내 문제를 해결하였다.
해결법은 다음과 같다.
마이바티스 세팅을 위해 dataSource 프로퍼티의 mapperLocations의 항목을 추가해주지 않아서이다.
사용하려는 마이바티스 쿼리 xml 파일을 프로퍼티에 추가시켜주어, 문제를 해결하였다.
결론은 새로 생성한 쿼리 작성 파일을 못읽어서 해당 value를 못찾는 에러였던 것이다.
하지만 이 에러의 경우 해당 경우 이외에 쿼리문을 잘못작성하는 등의 이유로도 발생한다고 하니, 다른 블로그 게시글을 참고하여야 할 수도 있다.