[Error] IntelliJ - Mapped Statements collection already contains value for

김상혁·2021년 2월 28일
1

Error

목록 보기
3/8
post-custom-banner

Mybatis 사용시 Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for 오류가 날 경우


  • 원인
  1. mapper id 가 틀린 경우

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

  3. .xml 에서 정의한 namespace와 DAO SQL 문에서 선언한 namespace가 다를 경우

  4. mapper가 정의가 되어 있지 않은 경우

  5. mapper에 정의 된 같은 이름의 namespace가 여러개 일 경우


5개의 원인이 나오지만 5개 다 아니었기에 오류를 더 찾아본 결과,
root-Context(applicationContext)와 MyBatis-configuration 2군데에서 mapper.xml을 선언하여 2번 불러온 것으로 판단해 오류가 발생

root-Context(applicationContext)와 MyBatis-configuration 둘 중 하나에서만 xml을 선언하면 해결

/ root-Context(applicationContext)

/ MyBatis-configuration

post-custom-banner

2개의 댓글

comment-user-thumbnail
2022년 7월 31일

ㅠㅠ감사합니다

답글 달기
comment-user-thumbnail
2024년 7월 21일

중복 선언의 문제였군요 감사합니다 !

답글 달기