Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링 빈
- Linux
- 스프링 컨테이너
- Kotlin
- 백준 javascript
- 백준 java
- 카카오
- java 백준 1차원 배열
- map
- 명령어
- 문자열
- 리눅스마스터 1급 정리
- 고잉버스
- 리눅스마스터 3과목
- Memoir
- JavaScript
- 자바
- 자바스크립트 코딩의 기술
- GoingBus
- 리눅스
- 반복문
- 연습문제
- Java
- 리눅스마스터1급
- toCharArray
- 코딩테스트
- 프로그래머스
- 월간코드챌린지
- 코테
- 개발자 회고록
Archives
- Today
- Total
hoon's bLog
Mybatis ERROR | Error : java.lang.IllegalArgumentException : Mapped Statements collection does not contain value for ~ 본문
IT/Error
Mybatis ERROR | Error : java.lang.IllegalArgumentException : Mapped Statements collection does not contain value for ~
개발한기발자 2024. 1. 22. 10:54반응형
Error 발생 경로
Spring에서 myBatis를 연동하면서 가장 많이 접하게 되는 error를 가져와 봤다.
(는 또 반복되는 실수... error 전문 개발자....)
Error : java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ~
우선 직역하자면 매핑된 컬렉션 구문들에 값이 존재하지 않는다는 것!!!!!
생각보다 이 에러가 많이 등장하는데,
과연 어떻게 해결해야할까?!!
해결
mapper id Check!
- 쿼리문을 모아두는 xml파일인 mapper에서 <select id='userName'></select>
- 'userName'이 호출되는 DAO(Data Acess Object)와 같은 java파일에서 값이 같아야 하는데, 다르면 에러가 발생!!!
Parameter와 bean의 필드명 확인할 것!!
mapper 파일 namespace 가 다를 경우
- DAO에서 해당 쿼리문을 호출할 때 namespace와 id를 통해 호출
- namespace로 mapper 전체를 찾고 id를 통해 그 안에서 요청한 쿼리를 찾는데 반드시 mapper 파일과 namespace가 일치하는지 확인할 것!!!!
- mapper 파일과 namespace가 중복될 경우도 문제 발생하니 주의할 것!!
MyBatis config 파일에 정의가 되어 있지 않거나 스펠링이 틀린 경우
MyBatis 설정파일로써 config dtd를 입력하고 밑에 <configuration> </configuration> 태그를 만들어 주지 않으면 에러가 발생
반드시 비어있는 태그라도 만들어줄 것!!!
결론
mybatis 문법 같은 경우 우리가 시간 내서 공부할 일이 없기 때문에,위와 같이 에러가 발생할 경우, 그때마다 정리하고 내 것으로 만드는 게 참 중요한 것 같다.실수를 넘기지 말고, 꾸준히 기록하자!!!
언제나 새로운 정보 공유와 잘못된 정보
비판/지적/태클은 환영입니다!
도움이 되셨다면 공감♥️, 댓글 부탁드려요:)
끝.
728x90
반응형