흰 스타렉스에서 내가 내리지

[Querydsl] 정렬과 페이징 본문

JPA

[Querydsl] 정렬과 페이징

주씨. 2024. 4. 18. 02:23
728x90

# 정렬

/**
 * 회원 정렬 순서
 * 1. 회원 나이 내림차순 (desc)
 * 2. 회원 나이 오름차순 (asc)
 * 단 2에서 회원 이름이 없으면 마지막에 출력 (nulls last)
 */
@Test
public void sort(){
    em.persist(new Member(null, 100));
    em.persist(new Member("member5", 100));
    em.persist(new Member("member6", 100));

    List<Member> result = queryFactory
            .selectFrom(member)
            .where(member.age.eq(100))
            .orderBy(member.age.desc(), member.username.asc().nullsLast())
            .fetch();

    Member member5 = result.get(0);
    Member member6 = result.get(1);
    Member memberNull = result.get(2);
    assertThat(member5.getUsername()).isEqualTo("member5");
    assertThat(member6.getUsername()).isEqualTo("member6");
    assertThat(memberNull.getUsername()).isNull();
}

 

  •  desc(), asc() : 일반 정렬
  • nullsLast(), nullsFirst() : null 데이터 순서 부여

 

 

# 페이징

@Test
public void paging1(){
    List<Member> result = queryFactory
            .selectFrom(member)
            .orderBy(member.username.desc())
            .offset(1)
            .limit(2)
            .fetch();

    assertThat(result.size()).isEqualTo(2);
}

 

 

'JPA' 카테고리의 다른 글

[Querydsl] 조인  (0) 2024.04.18
[Querydsl] 집합 함수, GroupBy  (0) 2024.04.18
[Querydsl] 결과 조회  (0) 2024.04.18
[Querydsl] 검색 조건 쿼리  (0) 2024.04.18
QueryDSL 세팅  (0) 2024.04.14