- 문제 상황이 발생했다.
어떤 데이터를 조회하는데 일부가 누락되어 조회되는 상황발생.
- 어떤 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 |
- 문제 상황이 발생했다.
어떤 데이터를 조회하는데 일부가 누락되어 조회되는 상황발생.
- 어떤 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 |