728x90

OFFSET 3

QueryDSL 페이징 방법

QueryDSL 에서의 페이징 -> offset과 limit를 통해서 페이징을 할 수 있다. LIMIT 숫자 : 출력할 행의 수 OFFSET 숫자 : 몇번째 row부터 출력할 지. (1번째 row면 0) 조회 건수 제한 @Test public void paging1() { List result = queryFactory .selectFrom(member) .orderBy(member.username.desc()) .offset(1) //offset은 0부터 시작(zero index), 현재 코드에서는 1번부터 데이터를 가져오도록 하므로 맨 처음 데이터는 생략됨 .limit(2) //최대 2건 조회 .fetch(); assertThat(result.size()).isEqualTo(2); } 전체 데이터 수..

QueryDSL 2022.07.16

페이징과 정렬(feat.queryDSL)

QItem item = QItem.item; query.from(item) .where(item.price.gt(20000) .orderBy(item.price.desc(), item.stockQuantity.asc()) .offset(10).limit(20) .list(item); 정렬은 orderBy를 사용하는데 쿼리 타입(Q)이 제공하는 asc(), desc()를 사용한다. 페이징은 offset과 limit을 적절히 조합해서 사용하면 된다. 실제 페이징 처리를 하려면 검색된 전체 데이터 수를 알아야 한다. 이때는 list() 대신에 아래 예제와 같이 listResults()를 사용한다. SearchResults result = query.from(item) .where(item.price.gt(10..

QueryDSL 2022.06.17

JPA에서 pageable을 통해 Paging 간단하게 구현하는 법

Paging 구현하기 가장 먼저 Controller API 에서 Pageable 인터페이스 타입으로 파라미터를 받으면 되는데요. Pageable는 어떤 인터페이스인지 내부 메소드를 간단하게 보고 가겠습니다. 인터페이스가 가진 메소드를 보면 여러가지가 있지만 getPageNumber(), getPageSize(), getOffset() 처럼 페이징을 구현할 때 필요한 값들을 편하게 구할 수 있는 메소드들을 추상화 시켜놓은 것을 볼 수 있습니다. 그래서 이제 시도해보려는 방법은 Spring Data JPA에서 메소드 이름으로 쿼리를 만들 때 페이징을 추가하는 법 입니다. 바로 고고싱! Repository 구현하기 public interface PostRepository extends JpaRepository..

JPA 2022.03.22
728x90