BackEnd/ORM(JPA)

페이징 API

페이징 API

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

 

 

페이징 API 예시

//페이징 쿼리
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_ > ?

'BackEnd > ORM(JPA)' 카테고리의 다른 글

조인  (0) 2023.02.18
프로젝션(SELECT)  (0) 2023.02.06
JPQL(Java Persistence Query Language)  (0) 2023.01.18
객체지향 쿼리 언어(JPQL)  (0) 2023.01.09
값 타입  (0) 2023.01.09