250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 일대다
- 데코레이터
- eager
- 이진탐색
- dfs
- CHECK OPTION
- 낙관적락
- 비관적락
- querydsl
- 연관관계
- 동적sql
- 유니크제약조건
- 즉시로딩
- 스프링 폼
- 지연로딩
- 연결리스트
- 다대일
- shared lock
- 스토어드 프로시저
- PS
- SQL프로그래밍
- BOJ
- 백트래킹
- fetch
- execute
- FetchType
- exclusive lock
- 힙
- 다대다
- JPQL
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
[Querydsl] 스프링 데이터 페이징 본문
728x90
# 스프링 데이터의 Page, Pageable 활용
@Override
public Page<MemberTeamDto> searchPage(MemberSearchCondition condition, Pageable pageable) {
List<MemberTeamDto> content = queryFactory
.select(new QMemberTeamDto(
member.id,
member.username,
member.age,
team.id,
team.name))
.from(member)
.leftJoin(member.team, team)
.where(usernameEq(condition.getUsername()),
teamNameEq(condition.getTeamName()),
ageGoe(condition.getAgeGoe()),
ageLoe(condition.getAgeLoe()))
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();
JPAQuery<Long> countQuery = queryFactory
.select(member.count())
.from(member)
.leftJoin(member.team, team)
.where(
usernameEq(condition.getUsername()),
teamNameEq(condition.getTeamName()),
ageGoe(condition.getAgeGoe()),
ageLoe(condition.getAgeLoe())
);
return PageableExecutionUtils.getPage(content, pageable, countQuery::fetchOne);
}
- 인터넷에 돌아다니는 레퍼런스 중, fetchResults() 와 fetchCount() 를 사용하는 경우가 있는데, 이 두 메서드는 Querydsl 5.0.0 버전에서부터 deprecated 되었다.
http://localhost:8080/v3/members?size=5&page=2
'JPA' 카테고리의 다른 글
트랜잭션 범위의 영속성 컨텍스트 (0) | 2024.04.25 |
---|---|
[JPA] 영속성 컨텍스트와 JPQL (0) | 2024.04.25 |
사용자 정의 리포지토리 구성 및 아키텍처 (0) | 2024.04.20 |
[Querydsl] 동적 쿼리, 성능 최적화 조회 - Builder 사용 + API 컨트롤러 (0) | 2024.04.20 |
[Querydsl] SQL function 호출하기 (0) | 2024.04.20 |