Query Method 방법
- 메소드명으로 쿼리 생성
- @Query 사용
- JPQL(Java Persistence Query Language)을 사용하여 Query를 생성
JPQL (Java Persistence Query Language)
- 객체지향 쿼리, DB 테이블이 아닌 엔티티 객체를 조회
- JPA 일부에 정의되어 있으며, DB 종류(Oracle, MySQL, PostgreSQL, ...)에 영향을 받지 않고 작성할 수 있는 장점이 있음
위치기반 (indexed) 쿼리 파라미터
- ?1 ≫ 첫 번째 파라미터인 emailAddress의 값이 전달됨
- 만약 파라미터가 (String emailAddress, String name) 식이었다면
?1은 emailAddress / ?2는 name을 전달하게 됨
명명된 (named) 쿼리 파라미터
- %:keyword ≫ 파라미터 중 keyword값이 전달됨
Native Query 사용하기
Native Query :
JPQL (엔티티 모델 기반의 객체 지향 쿼리 언어)의 문법을 따르지 않고 데이터베이스의 SQL 문법을 그대로 사용하여 작성하는 것
- @Query 키워드를 사용하여 Native Query를 쓸 수 있음
- 위치 기반 파라미터 인덱스는 0부터 시작
- named 쿼리 파라미터는 :name 형태로 표현
- 주의 사항
- Spring Data JPA가 제공하는 특정 DB 종류에 종속되지 않는 장점을 누릴 수 없음
- Pagination을 할 때 추가적인 작업이 필요
- 동적 정렬을 지원하지 않아 order by와 같이 따로 처리 필요
'spring' 카테고리의 다른 글
JPA Auditing / Base Entity (0) | 2024.09.14 |
---|---|
Lombok (0) | 2024.09.13 |
페이징 / 정렬 처리 (0) | 2024.09.13 |
Spring Data JPA 이용하기 (0) | 2024.09.13 |
영속성 컨텍스트 (0) | 2024.09.13 |