JPA 페이징API
1) 페이징API
- JPA는 페이징을 다음 두 API로 추상화
- setFirstResult(int startPosition) : 조회 시작 위치 (0부터 시작)
- setMaxResults(int maxResult) : 조회할 데이터 수
2) 페이징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();
3) MySQL, Oracle에서의 페이징
- 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 ?, ?
- 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_ > ?
'웹 기술 쌈싸먹기 > JPA' 카테고리의 다른 글
[JPA] JPQL 경로표현식 (0) | 2022.02.09 |
---|---|
[JPA] 조인, 서브쿼리 (0) | 2022.02.09 |
[JPA] 다양한 쿼리 방법 (0) | 2022.02.08 |
[JPA] 연관관계 관리(글로벌 페치 전략 설정, 영속성 전이 설정) (0) | 2022.02.08 |
[JPA] 고아 객체 (0) | 2022.02.08 |