위리윗
632
2019-12-10 23:17:20 작성 2019-12-10 23:21:03 수정됨
1
90

mybatis로 insert query 작성 중 객체 안의 map 참조


안녕하세요

도저히 모르겠어서 질문 올려봅니다.

아래와 같이 클래스 A에 String 변수들과 Map 변수를 선언하고 이를 mybatis로 작성한 insert query로 넘겨서 값을 넣어주려 합니다.

class A {
   String temp;
   Map<String, String> mapTemp;

   void setTemp(String temp){...}
   String getTemp(){return this.temp}
   void setMapTemp(String val){ this.mapTemp.put(key상수, val}
   Map<String, String> getMapTemp(){return this.mapTemp}
}
---
<insert id="asdasd" parameterType="A">
INSERT INTO TABLE (
temp
, CODEVAL
)
VALUES (
#{temp}
,function(
<foreach collection="Map.getMapTemp()" index="index" item="item">
  #{item, jdbcType=VARCHAR}, #{index, jdbcType=VARCHAR}
 </foreach>
)
)
</insert>

현재 Map에는 무조건 하나의 쌍만 들어가게 되어 있습니다.

해당 Map변수를 넘겨서 키와 값을 꺼내서 만들어둔 오라클 함수로 넘기는게 목적입니다.

query의 foreach문도 잘못 작성된거 같은데 어디를 고쳐야할지 도저히 모르겠어서 질문 올려봅니다... ㅠㅠ

위와 같이 사용하였을 때는 Map이라는 속성에 대한 getter가 없다는 오류가 출력되며 collection에 Map, getMapTemp, getMapTemp(), A.mapTemp 등을 넣어보았지만 해당 타입을 찾을 수 없다는 오류가 출력되고 있습니다.

부디 시간남으시는 선배님들 조언 좀 부탁드립니다.

--추가

현재 mybatis_config에는 클래스 A만 typeAlias로 등록이 되어있습니다.

0
0
  • 답변 1

  • 위리윗
    632
    2019-12-10 23:28:10

    해결이 되어버렸네요...

    collection에 mapTemp를 넣어주니 해결이 되었는데...

    아 분명 이것도 넣어줘봤던걸로 기억하는데...

    하...

    이제 넣어보는 값도 메모 해가면서 해야겠네요... 하........

    이거땜에 하................

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