오봉이와 함께하는 개발 블로그

JPA - 페이징 본문

BE/JPA

JPA - 페이징

오봉봉이 2022. 6. 30. 01:28
728x90

페이징

  • JPA는 페이징을 두 API로 추상화 한다.
    • setFirstResult(int startPosition) : 조회 시작 위치(0부터 시작)
    • setMaxResults(int maxResult) : 조회할 데이터 수

예시

for(int i = 0; i < 100; i++) {
    Member member = new Member();
    member.setUsername("test" + i);
    member.setAge(i);
    em.persist(member);
}

em.flush();
 em.clear();

List<Member> result = em.createQuery("select m from Member m order by m.age asc", Member.class)
        .setFirstResult(1)
        .setMaxResults(10)
        .getResultList();
System.out.println("result.count = " + result.size());
for (Member member1 : result) {
    System.out.println("member1 = " + member1);
}

설정한 DB 방언에 따라 알맞게 쿼리문이 나간다.

/* select
        m 
    from
        Member m 
    order by
        m.age asc */ 
        select
            member0_.id as id1_0_,
            member0_.age as age2_0_,
            member0_.TEAM_ID as TEAM_ID4_0_,
            member0_.username as username3_0_ 
        from
            Member member0_ 
        order by
            member0_.age asc limit ? offset ?
출처 : 인프런 김영한 지식공유자님의 스프링 부트와 JPA 실무 완전 정복 로드맵 강의
728x90

'BE > JPA' 카테고리의 다른 글

JPA - JPQL 타입 표현과 기타식, 조건식  (0) 2022.06.30
JPA - 조인, 서브 쿼리  (0) 2022.06.30
JPA - 프로젝션(select)  (0) 2022.06.30
JPA - 기본 문법과 쿼리 API  (0) 2022.06.30
JPA - 객체 지향 쿼리 언어 소개  (0) 2022.06.29
Comments