티스토리 뷰

JPA

Spring Data 페이징

절취선 2022. 6. 27. 22:08
반응형

Spring Data 페이징

스프링 데이터는 JPA 쿼리 메소드에 페이징과 정렬 기능을 사용할 수 있도록 2가지 특별한 파라미터를 제공한다.

  • org.springframework.data.Sort : 정렬기능
  • org.springframework.data.Pageable : 페이징 기능 (Sort 포함)

Page 타입

Page 메소드는 페이징 기능을 제공하기 위해 검색된 전체 데이터 컨수를 조회하는 count 쿼리를 추가로 호출한다.

// count 쿼리 사용
Page<Member> findByName(String name, Pageable pageable);

// count 쿼리 사용 안 함
        List<Member> findByName(String name, Pageable pageable);

페이지 조건 걸기

PageRequest pageRequest
        = new PageRequest(0, 10, new Sort(Direction.DESC, "name"));

        Page<Member> result = memberRepository.findByNameStartingWith("김", PageRequest);

        List<Member> members = result.get.getContent();

        int totalPages = result.getTotalPages();

        boolean hasNextPage - result.hasNextPage();

My Project Code

  @Transactional
public List<GallaryDto> getBoardlist(Integer pageNum) {

        Page<Gallary> page = gallaryRepository.findAll(PageRequest.of(pageNum-1, PAGE_POST_COUNT,
        Sort.by(Sort.Direction.ASC,"createDate")));


        List<Gallary> boards = page.getContent();

        List<GallaryDto> boardDtoList = new ArrayList<>();

        for(Gallary board : boards){
        boardDtoList.add(this.convertEntityToDto(board));
        }

        return boardDtoList;
        }
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함