Section 1. @Query 어노테이션
1. Spring Data JPA @Query 어노테이션
SQL과 유사한 JPQL (Java Persistence Query Language) 라는 객체지향 쿼리 언어를 통해 복잡한 쿼리 처리를 지원
- JPQL - 테이블이 아닌 엔티티 객체를 대상으로 검색하는 객체지향 쿼리, SQL 추상화로 인해 특정 db sql 에 의존하지 않음
2. @Query 를 이용한 조회
- 상품 상세 설명(itemDetail)으로 상품을 조회하고 결과는 가격순으로 정렬
- select "엔티티명" = select "*"
- @Param 을 통해 매개변수로 넘어온 값을 JPQL에 들어갈 변수로 지정
3. @Query 를 이용한 조회 테스트 수행
- ItemDetail 컬럼 값에 "테스트 상품 상세 설명" 문자열이 포함되어 있으면 추출
4. 쿼리 전달 및 결과
- 쿼리 전달 (where 및 order by 문을 통해서 조건 및 정렬 수행)
- 쿼리 결과
Section 2. @Query nativeQuery
1. nativeQuery
기존의 SQL 문을 사용할 수 있도록 지원하는 @Query 어노테이션의 속성
2. @Query nativeQuery 를 이용한 조회
- @Query 속성의 value 값으로 SQL 문을 지정하고, nativeQuery 속성 값을 true 지정
3. @Query 를 이용한 조회 테스트 수행
- ItemDetail 컬럼 값에 "테스트 상품 상세 설명" 문자열이 포함되어 있으면 추출
4. 쿼리 전달 및 결과
- 위에 @Query 를 이용한 조회 결과와 동일한 결과를 얻을 수 있음