페이징

양성빈·2022년 5월 1일

참고

페이징 API

  • JPA는 페이징을 다음 두 API로 추상화
  • setFirstResult(int startPosition) : 조회 시작 위치 (0부터 시작)
  • setMaxResults(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,
FROM
ORDER BY
  M.NAME AS NAME
  MEMBER M
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,
  ) ROW_
    M.NAME AS NAME
    FROM MEMBER M
    ORDER BY M.NAME
    WHERE ROWNUM <= ?
  )
WHERE ROWNUM_ > ?
profile
모든 것을 즐길줄 아는 개발자입니다!

0개의 댓글