Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- java
- 자바의정석
- 어노테이션
- PYTHON
- 소프트웨어개발
- 게시판프로젝트
- 자바의정석요약
- 정처기설명
- 이것이자바다
- 정보처리기사필기
- 게시판
- 정처기예상문제
- 게시판만들기
- 스프링부트
- 코딩테스트
- CRUD
- 정처기
- 정처기공부
- springboot
- CRUD구현
- function
- 파이썬
- 정처기필기
- 정보처리기사
- 소프트웨어설계
- 스프링
- 자바
- spring
- 프로그래머스
- 파이선
Archives
- Today
- Total
Helmi
쿼리 메소드 - 1 본문
package com.shop.repository;
//기존 임포트 생략
import java.util.list;
@SpringBootTest
@TestPropertySource(locations="classpath:application-test.properties")
class ItemRepositoryTests {
@Autowired
ItemRepository itemRepository;
//코드 생략
public void createItemList2() {
for(int i=1; i<=5; 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 findByItemNmtests() {
createItemList();
List<Item> itemList = itemRepository.findByitemNm("테스트");
for(Item item : itemList)
System.out.println("item : " + item);
}
쿼리 메소드 : 스프링 데이터 JPA에서 제공하는 핵심 기능 중 하나. Repository 인터페이스에 간단한 네이밍 이용해 메소드 작성 시 원하는 쿼리 실행 가능
find : 가장 많이 사용하는 문법. 엔티티 이름은 생략 가능, By 뒤에는 검색시 사용할 변수의 이름 적어줌.
find + (엔티티 이름) + By + 변수이름
상품 이름 이용해 데이터 조회하는 예시
- ItemRepository에 findByItemNm 메소드 추가
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 item);
}
- ItemNm(상품명)으로 데이터 조회 위해 By 뒤에 필드명인 ItemNm을 메소드 이름에 붙여줌. 엔티티 명은 생략 가능. findItemByNm 대신 findByItemNm으로 메소드 명 만들어줌. 매개변수로 검색시 사용할 상품명 변수 넘겨줌.
테스트 코드 추가
package com.shop.repository;
/* 기존 임포트 생략 */
@SpringBootTest
@TestPropertySource(locations="classpath:application-test.properties")
class ItemRepositoryTests {
@Autowired
ItemRepository itemRepository;
/* 기존 코드 생략 */
public void createItemList() {
for(int i=1; i<=5; 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 findByItemNmtests() {
createItemList();
List<Item> itemList = itemRepository.findByitemNm("테스트");
for(Item item : itemList)
System.out.println("item : " + item);
}
}
}
'SpringBoot' 카테고리의 다른 글
게시판 프로젝트 - pom.xml 설정 (0) | 2023.04.26 |
---|---|
쿼리 메소드 -2 (0) | 2023.03.17 |
Repository 설계하기 (0) | 2023.03.14 |
Entity 매핑 관련 어노테이션 (0) | 2023.03.13 |
상품 엔티티 설계 (0) | 2023.03.13 |