DataBase/My-Batis

[MyBatis/MySQL] Result Map을 조심 하세요.

2021. 3. 2. 16:00

- 문제 상황이 발생했다.

어떤 데이터를 조회하는데 일부가 누락되어 조회되는 상황발생.

 

- 어떤 select 쿼리에 아래와 같이 limit 100이 적용 되 있다.

pageable이 null 일 경우 조회결과에 limit 100을 건다.

limit가 없을 시 해당쿼리의 실행결과가 122건이라고 할 때,

limit가 적용되 있으면 몇건을 반환할까?

limit 100 이니까 당연히 100건인것 같지만,

현실은 24건을 반환한다.

 

원인은 result Map 이 적용되 있기 때문.

resultMap이란 결과값을 map에다 담아주는 역할을 함.

 

resultMap을 찾아가보자.

 

해당 resultMap의 안에서 collection 작업을 통해서 grouping 해주기 떄문에

100개의 row가 24개로 결과가 나오게 된다.

 

이러면 문제가..
원래는 전체 조회row 수가 122건이어야 하는데,

pageable == null 이어서 limit 100 이 적용되어 100건만 조회하는게 된다는 거..

 

그런데 resultMap collection이 적용되어 조회결과가 24건으로 줄어 들었기 때문에,

limit 100은 의심도 안하게 되는 문제가 생긴다.

( 조회된 row수가 24건이니까 limit 100은 상관이 없겠군! )

 

pageable을 넘겨주어 limit 100이 적용되지 않으면 122건이 조회가 되고,

collection을 돌리면 28건이 조회되게 된다.

그러니까, 28건이 조회가 되야 정상인데 계속 24건만 조회가 되니까 원인을 못찾고 해매게 되는 것.

 

search 결과를 반환하려고 resultMap에서 collection을 돌릴때, 이점을 주의 해야 함.

'DataBase > My-Batis' 카테고리의 다른 글

Out Of Memory Error. MyBatis Batch Insert 시 OOME 방지.  (1) 2023.07.03
MyBatis 쿼리 로그를 이쁘게 정렬 해보자  (0) 2021.05.30
[MyBatis/MySQL] 쿼리 작성시 Tip 모음  (0) 2021.03.01
Delete 문에 이상이 없어보이는데 Syntax 에러.  (0) 2021.03.01
Spring-boot 와 MyBatis 연결 설정.  (0) 2021.02.27
'DataBase/My-Batis' 카테고리의 다른 글
  • Out Of Memory Error. MyBatis Batch Insert 시 OOME 방지.
  • MyBatis 쿼리 로그를 이쁘게 정렬 해보자
  • [MyBatis/MySQL] 쿼리 작성시 Tip 모음
  • Delete 문에 이상이 없어보이는데 Syntax 에러.
PCOSPD 100LRE SCRIE4A2
PCOSPD 100LRE SCRIE4A2
PCOSPD 100LRE SCRIE4A2
tech log
PCOSPD 100LRE SCRIE4A2
  • 분류 전체보기 (67)
    • Web-base (0)
    • Front-End (1)
      • HTML (0)
      • CSS (1)
    • JavaScript (2)
      • DOM (2)
    • DataBase (19)
      • SQL (8)
      • MySQL (1)
      • My-Batis (6)
      • JOOQ (4)
      • RDBMS (0)
    • ☕️Java (22)
      • Java Basic (9)
      • JDK (1)
      • Date API (1)
      • 🍃Spring-boot (8)
      • Test (3)
      • 생산성 향상 시도 (0)
      • JPA (0)
    • 객체지향 (0)
    • 빌드도구 (0)
      • Maven (0)
      • Gradle (0)
    • Trouble Shooting (1)
      • Java Exceptions (1)
    • Work Exprience (0)
    • 서적 리뷰 (0)
    • Git (2)
    • intelli J (0)
    • Ubuntu (0)
    • 메뉴얼 (0)
    • 프로젝트 (0)
    • computer science (2)
      • Network (2)
      • 디자인 패턴 (0)
      • 운영체제 (0)
      • 알고리즘 (0)
    • 엑셀 (2)
    • 영어 (9)
      • 팝송 번역 (7)
      • 영화 번역 (2)
    • 경제 (1)
      • 주식 (1)
    • 기타 정보들 (1)
    • 도움이 된 글들 (1)
    • 취미 (4)
      • 디지털 드로잉 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 조회조건
  • 쿼리로그
  • 한컬럼여러조건
  • merovingian
  • matrix2 - reloaded
  • dynamic select
  • git 브랜치 전략
  • column값 검색조건
  • 교보문고 노래
  • SQL
  • 가사
  • 번역
  • MySQL
  • prettify
  • 교보문고 송
  • self-join
  • 교보문고OST
  • 해석
  • row별 검색조건
  • 프로크리에이트
  • branch strategy
  • Update
  • flushStatements
  • updatestep
  • matrix2
  • 디지털드로잉
  • select
  • out of memory error
  • Database
  • jooq
  • select custom
  • select max row
  • 월레스
  • condition
  • mockito
  • PotentialStubbingProblem
  • 조건별
  • query
  • 취미그림
  • selectQuery
  • procreate
  • Column
  • insertStep
  • Beautify
  • 레코드별 검색조건
  • 팝송
  • UpdateSetMoreStep
  • mybatis
  • github flow
  • DigitalDrawing

최근 댓글

최근 글

hELLO · Designed By 정상우.
PCOSPD 100LRE SCRIE4A2
[MyBatis/MySQL] Result Map을 조심 하세요.
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.