[개발] (3/5) Item Entity, Repository, Test 실습 findBy+(변수명 1)+Or+(변수명 2) Metho…
필기자
2022-09-08 16:57
6,697
0
본문
Item Entity, Repository, Test 실습 findBy+(변수명 1)+Or+(변수명 2) Method
kr/hull/shop/repository/ItemRepository.java 다음 내용 추가
public interface ItemRepository extends JpaRepository<Item, Long> {
List<Item> findByItemNm(String itemNm); // find+(Entity명)+By+(변수명)으로 메소드 생성. Entity명 제거할 수 있음
// List<Item> findItemByItemNm(String itemNm);
List<Item> findByItemNmOrItemDetail(String itemNm, String itemDetail);
}
src/test/java/kr/hull/shop/repository/ItemRepositoryTest.java 다음 내용 추가
@SpringBootTest // 테스트 실행시 모든 Bean을 IoC 컨테이너에 등록 = 스프링부트 구동과 동일한 환경 조건
@TestPropertySource(locations="classpath:application-test.properties") // 테스트 실행시 우선되는 설정파일
class ItemRepositoryTest {
@Autowired // 필드 Bean 주입
ItemRepository itemRepository;
@Test // Method 테스트 대상 지정
@DisplayName("상품 저장 확인") // 테스트명
public void createItemTest(){
Item item = new Item();
item.setItemNm("좋은 상품");
item.setPrice(10000);
item.setItemDetail("좋은 상품 설명");
item.setItemSellStatus(ItemSellStatus.SELL);
item.setStockNumber(100);
item.setRegTime(LocalDateTime.now());
item.setUpdateTime(LocalDateTime.now());
Item savedItem = itemRepository.save(item);
System.out.println(savedItem.toString());
}
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());
itemRepository.save(item);
}
}
@Test
@DisplayName("상품명 조회 확인")
public void findByItemNmTest(){
this.createItemList();
List<Item> itemList = itemRepository.findByItemNm("좋은 상품 7");
for(Item item : itemList){
LOGGER.info(item.toString());
}
}
@Test
@DisplayName("상품명 or 상품 설명 확인")
public void findByItemNmOrItemDetailTest(){
this.createItemList();
List<Item> itemList = itemRepository.findByItemNmOrItemDetail("좋은 상품 1", "좋은 상품 설명 5");
for(Item item : itemList){
System.out.println(item.toString());
}
}
}
결과 QUERY
select
item0_.item_id as item_id1_0_,
item0_.item_detail as item_det2_0_,
item0_.item_nm as item_nm3_0_,
item0_.item_sell_status as item_sel4_0_,
item0_.price as price5_0_,
item0_.reg_time as reg_time6_0_,
item0_.stock_number as stock_nu7_0_,
item0_.update_time as update_t8_0_
from
item item0_
where
item0_.item_nm='좋은 상품 1'
or item0_.item_detail='java.io.StringReader@53b9952f' // java.io.StringReader@53b9952f = '좋은 상품 설명 5'
결과
댓글목록0