반응형

[Spring] Mapped Statements collection does not contain value for ~


작성일자 : 2018년 10월 23일


1. 증상 : 


Spring 기반 Web Application에서 쿼리 관련 작업 실행 시 아래 에러 문구 출력

"Mapped Statements collection does not contain value for ~"


2. 원인 :


위 증상의 원인은 대부분 아래와 같다.

1. mapper id가 틀린 경우

2. Parameter와 bean의 field명이  틀린 경우

3. sql.xml에서 정의된 namespace와 DAO에서 호출하는 namespace가 다를 경우

4. mapper가 정의가 되어 있지 않거나 Spelling이 틀린 경우

5. mapper에 정의된 namespace 명칭이 같은 Application 내에 중복 될 경우


실제 원인은 특정 시점 기준으로 동일한 이름이 존재하는 xml 파일은 메이븐 빌드 시 제외되는 현상이 발생하여, 4의 이유로 에러가 발생

ex ) test.java, test.xml 두 개의 파일이 존재 시 test.xml은 제외된 채 빌드


3. 해결 방안 :


1. 네이밍 변경

or

2. 메이븐에 직접 mapper 파일 포함 설정



메이븐 설정을 통해 문제 해결.


pom.xml


.. 

<build>

<finalName>test</finalName>

<resources>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.xml</include>

</includes>

</resource>

</resources>

..

</build>

..


반응형

+ Recent posts