샴푸한잔
271
2019-06-12 11:24:05
0
133

mybatis <foreach> 동적쿼리 생성중 레코드가 null인 현상


mybatis의 <foreach>를 사용하여 in절을 생성하는 쿼리에 문제가 있습니다.


콘솔에 출력되는 쿼리를 돌려보았을때에는 결과가 잘 나오는데 서비스만 타면

이상하게 null을 뱉어냅니다.

in절을 동적으로 생성하는부분에는 이상이 없는 것 같습니다

(이상이 있었다면 sqlgate에서 돌렸을때에도 문제가 생겨야 정상이겠죠....??)


안되려면 양쪽 모두다 안되야 할텐데 혹시 <foreach>를 사용함에 있어서 설정이 필요한 부분이 있나요 ??

List<Map<String, Object>> tempList = testListMapper.list(param);
List<Map<String, Object>> tempList2 = null;
		
List<String> tmpVar = new ArrayList<>();
		
for(int i = 0; i < tempList.size(); i++) {
			
	String str = String.valueOf(tempList.get(i).get("code"));
			
	tmpVar.add(str);
}
		
Map<String, Object> tempParam = new HashMap<String, Object>();
tempParam.put("tmpVar", tmpVar);


위와 같이 string으로 변환한 값을 list에 담고 리스트를 보내면 xml에서 아래와 같이 처리합니다.


and code IN
<foreach collection="tmpVar" item="item" index="index" open="(" separator="," close=")">
		#{item, jdbcType=VARCHAR}
</foreach>


<foreach> 관련 예제를 찾아보았고 위와같은 코드를 얻어 진행해보았으나

여전이 레코드는 빈값을 뱉어내네요.....

제가 간과한 부분이 있을까요??

0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.