[MyBatis Error] 쿼리문이 정상인데 값이 안뜰 때 - resultType / resultMap

2020. 12. 8. 18:35·Error code 모음/6. Jav Script errors
반응형

에러 상황

- 쿼리문이 정상으로 실행이 됨에도 불구하고, 값이 웹상에서 뜨지를 않았음.

 

에러 원인

- resultType 을 제대로 설정해주지 않았었음

- resultMap 을 사용하고 있었던 탓임

 

의문점

- resultType 과 resultMap 의 차이점은 무엇일까?

 

 

resultType 

이 구문에 의해 리턴되는 기대타입의 패키지 경로를 포함한 전체 클래스명이나 allias, collection 인 경우에 collection 타입 자체가 아닌 collection 이 포함된 타입이 될 수도 있다.

 

몇가지 가설을 세운 후 실험을 해본 결과, resultType 를 사용할 경우

대소문자를 가리지 않고 컬럼 값과 VO 값을 인식하여 맵핑을 해주는 것 같다.

 

그리고 ' _ ' 의 경우에는 자동으로 생략이 되게끔 설정이 된 것 같다.( 추측... )

 

대체적으로 자동 맵핑이 되기 때문에 편리

<select id="haha" resultType="hahaVO">
...
</select>


<select id="haha" resultType="int">
...
</select>

대체적으로 사용하는 상황

- 클래스명 전체를 사용하는 경우

- Alias 를 입력하는 경우

- VO, DTO 등 객체를 담을 수 있는 클래스의  경로를 명시하여 사용하는 경우

 

resultMap

외부 resultMap 의 참조명 결과맵은 MyBatis 의 가장 강력한 기능이다.

 

개발자가 직접 POJO 클래스에 맵핑, 각 요소들을 직접 맵핑해주어야 한다는 불편함이 있지만 제한없이 사용 가능

<resultMap id="hahaMap" type="hahaVO">
	<result property = "haha1" column="HAHA_ID">
</resultMap>



<select id="haha" resultMap="hahaMap">
...
</select>

 

결론

alias 를 사용하거나 VO 전체를 사용하는 경우에는 resultMap 보다는 

resultType 을 사용해야 한다.

또, resultMap 을 사용할 경우 맵핑된 파라미터들의 명칭이 불분명한채로 사용할 경우에는 값이 제대로 담기지 않아 에러가 발생하고

웹 페이지가 제대로 노출되지 않을 수 있다.

반응형
저작자표시 비영리 동일조건 (새창열림)

'Error code 모음 > 6. Jav Script errors' 카테고리의 다른 글

[Node.js Error] Client on Node.js: Uncaught ReferenceError: require is not defined  (2) 2021.09.25
[JavaScript Error] ENOENT: no such file or directory, open  (0) 2021.08.22
[Java Script Error] Chart Js Cannot read property 'length' of undefined  (0) 2021.01.04
[JAVA Script error] Invalid shorthand property initializer  (0) 2020.10.24
[JavaScript] 'node'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ���ġ ������ �ƴմϴ�. 에러  (0) 2020.07.16
'Error code 모음/6. Jav Script errors' 카테고리의 다른 글
  • [JavaScript Error] ENOENT: no such file or directory, open
  • [Java Script Error] Chart Js Cannot read property 'length' of undefined
  • [JAVA Script error] Invalid shorthand property initializer
  • [JavaScript] 'node'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ���ġ ������ �ƴմϴ�. 에러
쟈누
쟈누
Ad astra per aspera
    반응형
  • 쟈누
    쟈누의 기록공간
    쟈누
  • 전체
    오늘
    어제
    • 분류 전체보기 (444)
      • AWS (31)
        • Glue (4)
        • S3 (1)
      • 클라우드 (0)
      • Data Engineering (37)
        • GitHub (10)
        • NiFi (11)
        • Spark (10)
        • Snowflake (0)
        • 머신러닝, AI (6)
      • 언어 (118)
        • 데이터 베이스 (42)
        • JAVA (9)
        • Python (34)
        • Java Script (15)
        • Linux (18)
      • 프로젝트, 인강 그리고 책 (30)
        • Spotify Project (7)
        • RASA chatbot Project (9)
        • Naver shopping Project (6)
        • 빅데이터를 지탱하는 기술 (8)
      • OLD (56)
        • IT 용어 사전 (13)
        • Front End (12)
        • Back End (31)
      • Error code 모음 (165)
        • 1. SQL errors (17)
        • 2. Hadoop errors (20)
        • 3. Linux Errors (14)
        • 4. Python errors (33)
        • 5. JAVA, Spring errors (41)
        • 6. Jav Script errors (10)
        • 7. Dev Tools errors (9)
        • 8. Git errors (8)
        • 9. Jenkins Errors (4)
        • 10. airflow Errors (2)
        • 11. Aws errors (7)
      • 개인 (1)
        • 책 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 관리
    • 글쓰기
  • 링크

  • 공지사항

    • 간단한 블로그 소개
  • 인기 글

  • 태그

    에러
    설치
    NiFi
    java
    API
    error
    Python
    json
    node
    python error
    Git
    AWS
    파이썬
    Spring
    SQL
    리눅스
    MySQL
    install
    자바
    linux
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
쟈누
[MyBatis Error] 쿼리문이 정상인데 값이 안뜰 때 - resultType / resultMap
상단으로

티스토리툴바