728x90
쿼리 메소드 사용법
쿼리메소드는 Repository 인터페이스에
간단한 네이밍룰을 이용하여 메소드를 작성하여 원하는 쿼리를 실행할 수 있다.
find + (엔티티 이름) + By + 변수이름
쿼리 메소드 예제
Repository
package com.shop.repository;
import com.shop.entity.Item;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ItemRepository extends JpaRepository<Item, Long> {
List<Item> findByItemNm(String itemNm); // 엔티티명은 생략 가능하므로 Item생략
}
테스트 코드
public void createItemList(){
for(int i =1; i <=10;i++){
Item item = new Item();
item.setItemNm("테스트 상품" + i);
item.setPrice(10000 + i);
item.setItemDetail("테스트 상품 상세 설명" + i);
item.setItemSellStatus(ItemSellStatus.SELL);
item.setStockNumber(100);
item.setRegTime(LocalDateTime.now());
item.setUpdateTime(LocalDateTime.now());
Item savedItem = itemRepository.save(item);
}
}
@Test
@DisplayName("상품명 조회 테스트")
public void findByItemNmTest(){
this.createItemTest();
List<Item> itemList = itemRepository.findByItemNm("테스트 상품1");
for(Item item : itemList){
System.out.println(item.toString());
}
}
테스트 코드 실행
OrderBy 정렬 처리 예제
Repository
public interface ItemRepository extends JpaRepository<Item, Long> {
List<Item> findByPriceLessThanOrderByPriceAsc(Integer price);
}
테스트 코드
@SpringBootTest
@TestPropertySource(locations="classpath:application-test.properties")
class ItemRepositoryTest {
...
@Test
@DisplayName("가격 내림차순 조회 테스트")
public void findByPriceLessThanOrderByPriceDesc(){
this.createItemList();
List<Item> itemList = itemRepository.findByPriceLessThanOrderByPriceAsc(10005);
for(Item item : itemList){
System.out.println(item.toString());
}
}
}
테스트 코드 실행
반응형
'프로젝트 > Archive' 카테고리의 다른 글
[스프링 부트 쇼핑몰 프로젝트 with jpa] Spring DATA JPA Querydsl (0) | 2022.10.04 |
---|---|
[스프링 부트 쇼핑몰 프로젝트 with jpa] @Query 어노테이션 (0) | 2022.09.21 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] Repository 설계 (0) | 2022.09.20 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] 상품 엔티티 설계 (0) | 2022.09.18 |
[스프링 부트 쇼핑몰 프로젝트 with jpa] 프로젝트 생성 (0) | 2022.09.16 |