게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[java] mybatis parameter type 질문
게시물ID : programmer_18887짧은주소 복사하기
작성자 : 유자즙
추천 : 0
조회수 : 1127회
댓글수 : 1개
등록시간 : 2016/11/03 19:42:17
옵션
  • 본인삭제금지
안녕하세요 개발중에 궁금한것이 잇어서 질문드립니다.

dao 에서 mapper로 넘긴 파라미터 오브젝트를 mapper에서 parameterType을 지정하지 않아도

정상적으로 쿼리 변수에 바인딩되어 수행되는데 이유를 모르겟습니다..

심지어 dao에서 넘긴 파라미터 오브젝트와 mapper에서 지정한 parameterType이 틀려도 dao에서 넘긴 파라미터 오브젝트가 사용됩니다.


ex1) 파리미터타입을 지정하지 않아도 값이 바인딩 됨

#VO
public class TestVO {
private String id;
get..
set..
}

# DAO
sqlSessionTemplate.selectOne("test.selectTest", testVO);

#Mepper
<select id="selectTest" resultMap="hashMap">
select * from test where id = #{id}
</select>



ex2) 파라미터타입에 지정된 VO를 무시하고 sqlSessionTemplate에서 넘긴 VO가 사용됨

#VO
public class TestVO {
private String id;
get..
set..
}

public class TmpVO {
private String name;
get..
set..
}

# DAO
sqlSessionTemplate.selectOne("test.selectTest", testVO);

#Mepper
<select id="selectTest" parameterType="com.test.vo.TmpVO" resultMap="java.util.HashMap">
select * from test where id = #{id}
</select>

ex3) typeAlias 설정하지 않아도 hashMap, string  등이 사용가능함

# DAO
sqlSessionTemplate.selectOne("test.selectTest", hashMapParams);

#Mepper
<select id="selectTest" parameterType="hashMap" resultMap="hashMap">
select * from test where id = #{id}
</select>


가설은.. 매퍼에서 지정한 파라미터 타입에 상관없이 DAO 넘겨준 파리미터 오브젝트가 오버라이드 된다 인데 

찾아봐도 왜 그런지 잘모르게습니다.


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호