JUnit을 이용한 테스트 코드 작성
- JUnit 생명 주기 (Life Cycle) 코드 작성을 통한 어노테이션 동작 확인
- @Test : 테스트 코드를 포함한 메서드 정의
- @BeforeAll : 테스트를 시작하기 전에 호출되는 메서드 정의
- @BeforeEach : 각 테스트 메서드가 실행되기 전 동작하는 메서드 정의
- @AfterAll : 테스트를 종료하면서 호출되는 메서드 정의
- @AfterEach : 각 테스트 메서드가 종료되면서 호출되는 메서드 정의
Spring Data JPA 활용하기
JPQL
JPA Query Language, JPA에서 사용할 수 있는 쿼리를 말한다.
- JPQL 쿼리의 기본 구조
SELECT p FROM Product p WHERE p.number = ?1;
Product : 엔티티 타입
p.number : 엔티티 속성
쿼리 메서드
동작을 결정하는 주제(Subject)와 서술어(Predicate)로 구분한다.
→ 주제 키워드로 쿼리의 주제 결정, 서술어에서 검색 및 정렬 조건 지정
쿼리 메서드의 주제 키워드
- 조회 기능 수행
- find .. By
- read .. By
- get .. By
- query .. By
- search .. By
- stream .. By
- 특정 데이터 존재 여부 확인
- exists .. By
- 조회 쿼리 수행 후 결과 레코드 수 리턴
- count .. By
- 삭제 쿼리 수행
- delete .. By
- remove .. By
- 쿼리를 통해 조회된 결과 개수 제한
- .. First<number> ..
- .. Top<number> ..
1. 테이블에 데이터를 삽입하는 테스트 케이스
- 기존 프로젝트에 테스트 코드 작성

- 작성한 테스트 코드 실행 후 터미널 출력 결과

- HeidiSQL에서 product 테이블 조회 후 입력된 데이터 확인하기

2. @Query Annotation 사용해 JPQL 작성하기
→ 메서드 이름만으로 쿼리 메서드를 실행할 수도 있으나, @Query 어노테이션을 사용해 직접 JPQL을 작성할 수 있다
@Query("SELECT p FROM Product AS p WHERE p.name = ?1")
List<Product> findByName(String name);
→ ?1 : 파라미터를 전달 받기 위한 인자, 1은 첫 번째 파라미터를 의미

'Backend > SpringBoot' 카테고리의 다른 글
| [Linux/Docker] Redis, MySQL Docker 이미지를 사용해 시스템 사용해보자 (0) | 2024.08.23 |
|---|---|
| [SpringBoot] QueryDSL에 대해 알아보고 사용해보자 (0) | 2024.08.22 |
| [SpringBoot] MariaDB 데이터베이스를 연동해보자 (0) | 2024.08.22 |
| [SpringBoot] 로깅 라이브러리 Logback을 이용해 로그를 확인해보자 (0) | 2024.08.22 |
| [SpringBoot] 다양한 방법으로 DELETE API를 생성해보자 (0) | 2024.08.22 |