Pageable이란?
게시판에서 글을 한 번에 보여주지 않고 페이지를 나눠 보여준다.
정렬 방식, 페이지 번호, 페이지 크기 등 요청에 따라 정보를 전달해 주는 JPA에서 제공해 주는 객체이다.
사용 방법
1-1) Repository
@Repository
public interface BoardRepository extends JpaRepository<BoardEntity, String> {
@Query(value = "select id, user_id, title, content, img, likes, hits\n" +
"\t\t, (select COUNT(*) from comment where board_id = id) as comments, reg_time \n" +
"from board \n" +
"where title like %?1%",
countQuery = "select count(*) from board",
nativeQuery = true)
Page<Map> findPageList(String keyword, Pageable page);
}
- countQuery : nativeQuery를 사용시 반드시 설정해 줘야한다. 만약, 없다면 value문 기준으로 동작한다.
1-2) Service
public Page<Map> paging (final int page, final String keyword, final String sort) {
Pageable pageable = PageRequest.of(page, 10, Sort.Direction.DESC, sort);
return boardRepository.findPageList(keyword, pageable);
}
PageRequest.of(페이지 번호, 페이지 사이즈, 정렬 방법, 정렬 기준 컬럼);
- 페이지 번호는 0번부터 시작한다.
반응형
'Java' 카테고리의 다른 글
[Spring Boot / Java8] OpenAI API GPT3 사용 방법 (0) | 2023.03.23 |
---|---|
[Spring Boot] Security @AuthenticationPricipal 객체로 로그인 정보 받는 방법 (0) | 2023.03.21 |
[Spring Boot] RestTemplate/WebClient 사용한 REST API 호출 방법 (0) | 2023.02.11 |
[Spring Boot] CORS 설정 방법 (0) | 2022.10.27 |
[Spring Boot] Spring Security 패스워드 암호화 방법 (0) | 2022.10.26 |