CompanyController
@GetMapping // 회사 리스트 조회
public ResponseEntity<?> searchCompany(final Pageable pageable){
// final 키워드로 임의 변환 방지
// Pagination 요청 정보를 담기위한 추상 인터페이스
Page<CompanyEntity> companies = companyService.getAllCompany(pageable);
// 회사명은 전부 다 가져와야 하는가?
// 가져와야하는 데이터가 클수록 네트워크 대역푝 증가
// client 단에서 한번에 보여줄 수 있는 아이템의 갯수는 정해져 있다!
// paging 사용
return ResponseEntity.ok(companies);
}
Pageable을 사용하면 쿼리 스트링을 사용해서 pagination을 쉽게 할 수 있다.
CompanyService
public Page<CompanyEntity> getAllCompany(Pageable pageable){ // return 타입이 page이다.
return this.companyRepository.findAll(pageable); // JPA repository에서 findall을 구현해준다.
}
findAll에 pageable 값을 넘겨주면 반환값이 List<CompanyEntitiy>가 아닌 Page<CompanyEntitiy>가 된다.
요청을 보내보자!
이런식으로 pagealbe에 관한 데이터도 json형태로 같이 날라온다.
page와 size를 사용해서 pagination도 할 수 있다.
'Project' 카테고리의 다른 글
[stock] 자동완성 (0) | 2023.09.18 |
---|---|
[stock] 회사 배당금 조회 (0) | 2023.09.15 |
[stock] 배당금 저장 (0) | 2023.09.15 |
[stock] 배당금 저장하기(1) (0) | 2023.09.11 |
[stock] Entity 작성 (0) | 2023.09.11 |