@Repository
public interface ProductRepository extends JpaRepository<Product, String>, ProductRepositoryCustom {
// (1) 상품 번호(prefix)로 시작하는 상품 조회
List<Product> findByProdNoStartingWith(String select);
// (2) 상품 번호로 단일 상품 조회
Optional<Product> findByProdNo(String prodNo);
// (3) 특정 서브카테고리의 모든 상품 조회
List<Product> findBySubCategory(SubCategory subCategory);
// (4) 할인율 높은 순 Top 8 상품 조회
List<Product> findTop8ByOrderByProdDiscountDesc();
// (5) 조회수 높은 순 Top 8 상품 조회
List<Product> findTop8ByOrderByHitDesc();
// (6) 리뷰 수 많은 순 Top 8 상품 조회
List<Product> findTop8ByOrderByReviewCountDesc();
// (7) 판매량 높은 순 Top 5 상품 조회
List<Product> findTop5ByOrderByProdSoldDesc();
// (8) 평점 높은 순 Top 8 상품 조회
List<Product> findTop8ByOrderByRatingTotalDesc();
// (9) 최근 등록 순 Top 8 상품 조회
List<Product> findTop8ByOrderByRegDateDesc();
// (10) QueryDSL BooleanBuilder 조건에 따른 모든 상품 조회
List<Product> findAll(BooleanBuilder builder);
}
메서드별 간략 설명
findByProdNoStartingWith(String select)
- 기능: 주어진 문자열로 시작하는 상품 번호를 가진 모든
Product 조회
- 용도 예시: 자동완성 검색, 빠른 상품 번호 검색
findByProdNo(String prodNo)
- 기능: 특정
prodNo(상품번호)를 가진 단일 상품을 Optional로 반환
- 용도 예시: 상품 상세 조회, 장바구니·주문 처리 시 해당 상품 존재 여부 확인
findBySubCategory(SubCategory subCategory)
- 기능: 주어진
SubCategory 객체에 속한 모든 상품 조회
- 용도 예시: 카테고리별 상품 리스트 페이지 초기 로딩
findTop8ByOrderByProdDiscountDesc()
- 기능: 할인율(
prodDiscount)이 높은 순서대로 상위 8개 Product 조회
- 용도 예시: “오늘의 할인 상품”이나 “할인율 높은 순” 배너 영역
findTop8ByOrderByHitDesc()
- 기능: 조회수(
hit)가 높은 순서대로 상위 8개 Product 조회
- 용도 예시: “인기 상품” 추천 위젯
findTop8ByOrderByReviewCountDesc()
- 기능: 리뷰 수(
reviewCount)가 많은 순서대로 상위 8개 Product 조회
- 용도 예시: “리뷰 많은 베스트” 섹션
findTop5ByOrderByProdSoldDesc()
- 기능: 판매량(
prodSold)이 높은 순서대로 상위 5개 Product 조회
- 용도 예시: “베스트셀러 Top 5” 표시
findTop8ByOrderByRatingTotalDesc()
- 기능: 총 평점(
ratingTotal)이 높은 순서대로 상위 8개 Product 조회
- 용도 예시: “평점 높은 상품” 섹션
findTop8ByOrderByRegDateDesc()
- 기능: 등록일(
regDate)이 최신인 순서대로 상위 8개 Product 조회
- 용도 예시: “신상품” 리스트
findAll(BooleanBuilder builder)
- 기능: QueryDSL
BooleanBuilder로 조합된 동적 조건에 따라 모든 Product 조회
- 용도 예시: 검색 또는 복합 필터 적용 시 동적 조건 기반 상품 조회
- 상속 인터페이스:
JpaRepository<Product, String>
ProductRepositoryCustom
- QueryDSL을 활용한 복잡한 동적 쿼리(베스트 상품, 정렬·필터링 등) 구현 메서드 포함