문제 상황
프로젝트를 진행하면서 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>