[Spring] java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ~

limlim·2024년 1월 13일
0

오류 정리

목록 보기
15/16
post-thumbnail

문제 상황

 프로젝트를 진행하면서 startDate, endDate라는 데이터를 Date 형식으로 지정해 데이터를 등록했는데 
 Failed to convert property value of type 'java.lang.String' 
 to required type 'java.util.Date' for~ 라는 오류 발생

문제 원인

 위 오류가 발생하는 원인에는 여러가지가 있다.
 
 (오류가 발생하는 원인)
 1) mapper id가 다른 경우
 2) 파라미터와 bean의 필드명이 다른 경우
 3) mapper 파일에 정의된 namespace와 mapper 파일에 접근하는 java 파일에서 호출하는 namespace가 다른 경우
 4) mybatis config 파일에 mapper가 정의되어있지 않거나 스펠링이 틀린 경우
 5) mapper에 정의된 namespace 명칭이 같은 Application 내에 중복될 경우
 
 내가 마주한 문제의 원인은 mybatis config 파일에 mapperLocations가 잘못 정의되어 
 mapper를 불러오지 못해 발생한 문제였음

해결책

 mapperLocations가 설정된 xml 파일에서 mapperLocations 설정을 처음에 1번처럼 시도했을 때 되지 않았다. 
 그래서 2번으로 시도해서 해결하였다.

 1) <property name="mapperLocations" value="classpath*:com/test/test1/mapper/*.xml, 
                                            classpath*:com/test/test2/mapper/*.xml"/>
 2) <property name="mapperLocations">
 		<list>
        	<value>classpath*:com/test/test1/mapper/*.xml</value>
            <value>classpath*:com/test/test2/mapper/*.xml</value>
        </list>
    </property>
profile
不怕慢,只怕站 개발자

0개의 댓글