프로그래밍 언어/에러노트

[MyBatis] Mapped Statements collection does not contain value

s워니얌 2022. 11. 16. 17:28

 

 

게시글 목록 조회하는 간단한 쿼리문 작성 후 조회하려고 하는데 목록이 뿌려지지 않고 에러가 뜨더라. Mapped Statements collection does not contain value ~~ service에서 값이 안 받아와졌다.

 

다른 블로그들 보면서 이런 에러가 뜨면 어떤 이윤지 찾아봤는데도 해결 못 하고 끙끙대다가 결국 해결!!! 근데 역시나 다른 곳에서 정리된 것 때문이었다.

 

 

📌 1.  mapper id가 다른 경우 

<select id=""> Mapper 파일에서 설정하는 쿼리 태그 아이디와 DAO에서 지정한 id가 다를 때 이 에러가 날 수 있다.

 

📌 2. Parameter와 bean 필드명이 틀린 경우

 

📌 3. mapper 파일에 정의된 네임스페이스와 mapper 파일에 직접 접근하는 java(DAO나 service)에서 호출하는 namespace가 다를 경우

 

📌 4. MyBatis config 파일에 mapper가 정의 되어 있지 않거나 스펠링이 틀린 경우

 

📌 5. mapper에 정의된 namewpace 명칭이 같은 application 내에 중복될 경우 

 

 

 

내 경우는 applicationContext.xml파일에서 mapper 경로를 설정할 때 

 

<!-- ## Mapper setup ## -->
	<bean id="mysqlSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="mysqlDataSource" />
		<property name="configLocation" value="/WEB-INF/mybatis-mysql-config.xml" />
		<property name="typeAliasesPackage" value="kr.happyjob.study" />
		<!-- <property name="mapperLocations" value="classpath*:kr/happy/jobkorea/**/dao/mapper/*Mapper.xml" /> -->
		<property name="mapperLocations" value="classpath*:sql/*/*Mapper.xml" />
	</bean>

 

<property name="mapperLocations" value="classpath*:sql/*/*Mapper.xml" /> 에서 경로를 Mapper.xml로 끝나야된다고 만들어 놨는데 원본 파일을 복사해서 Mapper2.xml로 만들어놔서 아예 mapper를 읽지 못 했던 것!!!!!!!

 

설정이 반이다... 설정 잘 확인하자 이로인해 배운 점도 많다.

 

 

 

 

반응형