boolean existsByNumber(Long number);
long countByName(String name);
void deleteByNumber(Long number);
long removeByName(String name);
List<Product> findFirst5ByName(String name);
List<Product> findTop10ByName(String name);
List<Product> findByNameOrderByNumberAsc(String name);
List<Product> findByNameOrderByNumberDesc(String name);
2. 우선순위 기준으로 작성
List<Product> findByNameOrderByPriceAscStockDesc(String name);
3. 매개변수 활용
List<Product> findByName(String name, Sort sort);
4. Sort 객체 활용
productRepository.findByName("펜",Sort.by(Order.asc("price")));
productRepository.findByName("펜",Sort.by(Order.asc("price"),Orderdesc("stock")));
// 페이징 처리를 위한 쿼리 메서드 예시
Page<Product> findByName(String name, Pageable pageable);
// 페이징 쿼리 메서드를 호출하는 방법
Page<Product> productPage = productRepository.findByName("펜", PageRequest.of(0, 2));
// Page 객체의 데이터 출력
Page<Product> productPage = productRepository.findByName("펜", PageRequest.of(0, 2));
System.out.println(productPage.getContent());
of 메서드 | 매개변수 설정 | 비고 |
of(int page, int size) | 페이지 번호(0부터 시작), 페이지당 데이터 개수 | 데이터를 정렬하지 않음 |
of(int page, int size, Sort) | 페이지 번호, 페이지당 데이터 개수, 정렬 | sort에 의해 정렬 |
of(int page, int size, Direction, String... properties) | 페이지 번호, 페이지당 데이터 개수, 정렬 방향, 속성(칼럼) | Sort.by(direction,properties)에 의해 정렬 |
@Query("SELECT p FROM Product p WHERE p.name = :name")
List<Product> findByNameParam(@Param("name") String name);
Q. 문제 2
1. 쿼리 메서드의 키워드 중에서 특정 데이터가 존재하는지 확인하기 위해 사용하는 키워드를 작성하시오.
답 : existsByNumber
boolean //여기에 입력(Long number);
2. 빈칸에 들어갈 어노테이션을 작성하시오.
답 : @Query
//여기에 작성("SELECT p FROM Product p WHERE p.name = :name")
List<Product> findByNameParam(@Param("name") String name);
출처: 스프링부트 핵심 가이드
SPRING #2
Editor : 크리스탈
[스프링 2] 7장. 테스트코드 작성하기 (0) | 2024.12.27 |
---|---|
[스프링 2] 6장. 데이터베이스 연동 (0) | 2024.11.29 |
[스프링 2팀]5~6장. API를 작성하는 다양한 방법 & 데이터베이스 연동 (0) | 2024.11.22 |
[스프링 2팀] 1~4장. 스프링 부트 개발 환경과 애플리케이션 개발하기 (0) | 2024.11.15 |
[스프링 2팀] 스프링 입문 - 섹션 07~08 (0) | 2024.11.08 |