public interface ProductRepository extends JpaRepository<Product, Long> {
// (1) 회원 ID 로 등록된 상품들 조회
List<Product> findAllByUserId(Long userId);
// (2) 상품명이 title 인 관심상품 1개 조회
Product findByTitle(String title);
// (3) 상품명에 word 가 포함된 모든 상품들 조회
List<Product> findAllByTitleContaining(String word);
// (4) 최저가가 fromPrice ~ toPrice 인 모든 상품들을 조회
List<Product> findAllByLpriceBetween(int fromPrice, int toPrice);
}
ID 외의 필드에 대한 추가 기능은 interface 만 선언해 주면,
구현은 Spring Data JPA가 대신!!Spring Data JPA 추가기능 구현방법은 공식문서(링크)에 명시되어 있음
- Spring Data JPA 의 Query Methods
Youtube 채널에서 확인할 수 있는 Infinite Scroll 도 페이징 처리 종류 중 하나이다.
Client → Server
페이징
1) page : 조회할 페이지 번호 (1부터 시작)
2) size : 한 페이지에 보여줄 상품 개수 (10개로 고정!)
정렬
Server → Client
totalPages = totalElement / size 결과를 소수점 올림
1 / 10 = 0.1 => 총 1 페이지
9 / 10 = 0.9 => 총 1페이지
10 / 10 = 1 => 총 1페이지
11 / 10 => 1.1 => 총 2페이지