SpringBoot 쇼핑몰 만들기

[네 번째 기록] 쿼리 메서드(SpringDataJPA)

여행하는 개발자(SOO) 2022. 11. 5. 19:22
728x90

쿼리 메서드

  • 쿼리 메서드는 스프링 데이터 JPA에서 제공하는 핵심 기능 중 하나
  • Repository 인터페이스간단한 네이밍 룰을 이용하여 메서드를 작성하면 원하는 쿼리실행할 수 있다.(엔티티 이름 생략 가능)
쿼리 메서드 작성 예시

자세한 방법 : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods

 

1. ItemRepository에 findByItemName 추가

ItemRepository에 쿼리 메서드 추가

 

 

2. ItemRepositoryImpl에서 findByItemName 구현

  • JPQL을 이용하여 findyItemName을 구현한다.

JPQL로 findByItemName 구현

 

 

3. findByName 테스트

  • ItemRepositoryTest.class에 findBynameTest메서드 추가
  • @SpringBootTest = SpringBoot를 이용한 통합 테스트를 위한 어노테이션
  • 테스트 폴더에 설정한 위 2번의 application-test.properties의 설정이 우선권을 가진다.(H2데이터베이가 실행된다)
  • @Autowird로 ItemRepository 인터페이스를 주입받는다.(구현체는 ItemRepositoryImpl)
  • @DisplayName(테스트 이름을 결과창에 보여준다)

findByitemName 테스트

3.1 AssertJ(테스트 라이브러리)를 이용한 테스트

  • DB에 테스트용 데이터가 없으므로 10개의 데이터를 생성하는 메서드를 findByItemName메서드에서 실행한다.
  • assertThat(검증하려는 값).isEqualTo(예상 값) 검증하려는 값이 예상 값과 일치하는지 비교

자세한 내용 : https://assertj.github.io/doc

 

findByItemName 쿼리
ItemName으로 찾아오기 성공

 

728x90