본문 바로가기
데이터베이스/JPA

MySQL, JPA 페이징 사용하기

by jeonghaemin 2021. 2. 11.
728x90

공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:)

페이징을 사용하여 원하는 범위만큼의 데이터를 가져올 수 있으며, 보통 게시판 페이지 같은 것을 구현할 때 많이 사용된다.

예를 들어 post(게시글) 테이블의 title(제목)을 오름차순으로 정렬하여 '0번째부터 20개의 데이터'를 가져온다고 가정해보자.

사용방법

MySQL

  • limit, offset 사용

    select * from post order by title asc limit 0, 20;
    //또는
    select * from post order by title asc limit 20 offset 0;

JPA

  • setFirstResult(), setMaxResults() 사용
List<Topic> topics = entityManger.createQuery("select t from Topic t order by t.title asc", Topic.class)
                    .setFirstResult(0) //시작 위치
                    .setMaxResults(20) //데이터 개수
                    .getResultList();

참고

댓글