본문 바로가기

Spring/JPA

Spring JPA - 쿼리 조회 전략

 

1. XML configuration: query-lookup-strategy 속성을 통해 네임스페이스에서 전략을 구성

2. Java configuration: Enable${store}Repositories 주석의 queryLookupStrategy 속성을 사용

 

CREATE

쿼리 메서드 이름에서 저장소별 쿼리를 구성하려고 시도한다.

일반적인 접근 방식은 메소드 이름에서 잘 알려진 접두사 세트를 제거하고 나머지 메소드를 구문 분석하는 것이다.

쿼리 생성에 대한 자세한 내용은 "쿼리 생성"을 참조.

 

USE_DECLARED_QUERY

선언된 쿼리를 찾으려고 시도하고 찾을 수 없으면 예외 throw

쿼리는 어딘가에 어노테이션으로 정의되거나 다른 방법으로 선언될 수 있다.

해당 저장소에 대해 사용 가능한 옵션을 찾으려면 특정 저장소의 설명서를 참조.

리포지토리 인프라가 부트스트랩 시간에 메서드에 대해 선언된 쿼리를 찾지 못하면 실패.

 

CREATE_IF_NOT_FOUND(기본값)

CREATE와 USE_DECLARED_QUERY를 결합한다.

선언된 쿼리를 먼저 조회하고 선언된 쿼리가 없으면 사용자 지정 메서드 이름 기반 쿼리를 만든다.

이것은 기본 조회 전략이므로 명시적으로 구성하지 않은 경우에 사용된다.

메서드 이름으로 쿼리를 빠르게 정의할 수 있을 뿐만 아니라 필요에 따라 선언된 쿼리를 도입하여 이러한 쿼리를 사용자 정의할 수 있다.