본문 바로가기

[Spring] Mybatis collections 파라미터 여러개 사용 시 주의점

곰곰킴 2021. 6. 28.

개요

collections 사용 시 parameter를 여러 개 사용하는데 오류가 났다. mapper xml 같은 경우 요류를 정확히 알려주지 않기 때문에 확실한 개념으로 정확히 구현하는 것이 중요하다. 이 글을 통해 오류 해결 방법을 알아보자.

원인

<collection property="subMenu" 
  column="{idx=IDX, adminUserIdx=ADMIN_USER_IDX}"
  javaType="java.util.ArrayList" 
  select="selectSubMenu" 
  ofType="경로.Menu"/>

 

이처럼 column을 통하여 parameter를 여러 개 주었는데 

<select id="selectSubMenu" parameterType="java.lang.Integer" resultMap="BaseResultMap">

 

서브 쿼리 함수에서 int로 받은 것이 원인이었다. 바보 같았다.

반응형

해결

collections 사용 시 parameter를 여러 개 사용할 때 

서브 쿼리의 parameterType을 map으로 지정해야 한다. 

<select id="selectSubMenu" parameterType="java.util.Map" resultMap="BaseResultMap">

 

파라미터가 여러 개 이므로 타입을 map으로 바꿔주니 해결됐다.

댓글