[JPA] 페이징 처리하기

bluemind·2022년 11월 25일
0

jpa

목록 보기
4/5

여러가지 방법이 있다.

두가지 방법이 있는 것으로 보인다.

1. 순수 JPA 페이징 사용

페이지에 맞는 회원 가져오기

public List<Member> findByPage(int age, int offset, int limit) {
    return queryFactory.selectFrom(member)
            .where(member.age.eq(age))
            .orderBy(member.username.desc())
            .offset(offset)
            .limit(limit).fetch();
}

페이징을 위한 Total Count 가져오기

public Long totalCount(int age) {
    return queryFactory.select(member.count())
            .from(member)
            .where(member.age.eq(age))
            .fetchOne();

2. Pageable 사용

@RequestMapping(value = "attForm")
	public String attMyForm(Model model,
							@RequestParam(required = false, defaultValue = "0", value="page")int page) {
  Page<Work> workList = repository.findByUserid(userid,PageRequest.of(page, 10
  												, Sort.by(Sort.Direction.ASC,"workDate")));
  }

먼저 페이지의 기본값을 0으로 설정
가져올 갯수는 10개
정렬방식은 workDate 기준으로 정렬하겠다는 뜻이다.

페이징 하기 매우 편리하다

profile
실력있는 개발자가 되기 위한 여정

0개의 댓글