-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
Slice
21.08.28 03:36 작성 조회수 271
1
안녕하세요 영한님 감사합니다
PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username"));
Slice<Member> page = memberRepository.findByAge(age,pageRequest);
-------------------------------------------------------
결과:
select
member0_.member_id as member_i1_0_,
member0_.age as age2_0_,
member0_.team_id as team_id4_0_,
member0_.username as username3_0_
from
member member0_
where
member0_.age=?
order by
member0_.username desc limit 4
========================================
질문 1.
limit4 로 DB 를 쿼리를 날리는데
그런데 콘솔에서 데이터를 찍어보면
member=Member(id=5, username=member5, age=10)
member=Member(id=4, username=member4, age=10)
member=Member(id=3, username=member3, age=10)
이렇게 3건이 나오는데 중간에 JPA가 DB의 쿼리문과는 다르게 중간에 변환을 시켜주는것인가요 ?
질문 2
Slice 는 다음페이지 여부를 위해
Slice (count X) 추가로 limit + 1을 조회하는데,
이전에 페이징에서 사용한
page.hasNext();
이 메서드를 쓰면 되는거 아닌가요? ?
[(totalcount) 를 가져오지 않아서 성능상 유리해서 사용하는것인가요 ?]
답변을 작성해보세요.
0
김영한
지식공유자2021.08.28
안녕하세요. H K님
Slice는 totalcount를 호출하지 않는 대신에 max+1 을 조회해서 다음이 있는지 확인하는 방식입니다.
생각하신 것 처럼 성능상 유리한 점이 있습니다.
감사합니다.
H K
질문자2021.08.29
감사합니다
그런데 첫번째 질문인
limit4 로 DB 를 쿼리를 날리는데
그런데 콘솔에서 데이터를 찍어보면
member=Member(id=5, username=member5, age=10)
member=Member(id=4, username=member4, age=10)
member=Member(id=3, username=member3, age=10)
이렇게 3건이 나오는데 중간에 JPA가 DB의 쿼리문과는 다르게 중간에 변환을 시켜주는것인
건가요??
답변 1