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
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 |
댓글