Free Lines Arrow
본문 바로가기
DataBase/JPA

[JPA] JPQL 페이징

by skahn1215 2021. 9. 24.
728x90
반응형

JPQL 페이징

  • 조회할 데이터의 범위를 결정하는 방법을 말한다 보통 DB 에서 
    페이징을 구현하려면 다소 복잡하다

  • 하지만 JPQL 을 사용하면 쉽게 구현이 가능하다.

 

 

페이징에 사용되는 API

참고로 두개의 API 는 추상화이다.

  • setFirstResult(int startPosition): 조회 시작 위치
  • setMaxResult(int maxResult): 조회할 데이터수

 

 

페이징 예제

//페이징 쿼리
String jpql = "select m from Member m order by m.name desc";
List<Member> resultList = em.createQuery(jpql, Member.class)
.setFirstResult(10)
.setMaxResults(20)
.getResultList();

 

 

 

페이징 API MYSQL

SELECT
    M.ID AS ID,
    M.AGE AS AGE, 
    M.TEAM_ID AS TEAM_ID,
    M.NAME AS NAME
FROM
    MEMBER M
ORDER BY
    M.NAME DESC LIMIT ?, ?

 

 

페이징 API Oracle

SELECT * FROM
    ( SELECT ROW_.*, ROWNUM ROWNUM_
      FROM
        ( SELECT
            M.ID AS ID,
            M.AGE AS AGE,
            M.TEAM_ID AS TEAM_ID,
            M.NAME AS NAME
          FROM MEMBER M
          ORDER BY M.NAME
        ) ROW_
        WHERE ROWNUM <= ?
    )
WHERE ROWNUM_ > ?

 

 

 

 

 

 

참고:

https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21721?tab=note 

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

728x90
반응형

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

[JPA] JPQL TYPE  (0) 2021.09.24
[JPA] JPQL 조인, 서브쿼리  (0) 2021.09.24
[JPA] JPQL 프로젝션  (0) 2021.09.24
[JPA] JPQL 문법  (0) 2021.09.23
[JPA] JPQL 이란?  (0) 2021.09.23

댓글