2017-02-06 5 views
0

어노테이션 @Query를 사용하여 임시 플래그가 꺼져있는 매개 변수화 된 N1QL 쿼리를 실행할 수 있습니까?Spring-data-couchbase - 비정형 매개 변수화 된 쿼리 실행

e.e. 주어진 쿼리 :

@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} and author = $author") 
List<Comment> getCommentsByAuthor(@Param("author") String author); 

그렇지 않을 경우, 주석 쿼리에서 (저자 필드에이 예제 인덱스) 보조 인덱스를 사용하는 카우치베이스 주식회사 강제로 다른 방법은?

답변

1

당신은 몇 가지를 혼합하는 것 :

  • 매개 변수화 쿼리 당신의 조각에서와 @Query 주석과 함께 작동합니다. 문서에 언급되어 있습니다 (첫 번째 경고 블록 this section 아래).

  • N1QL의 보조 인덱스는 문에 따라 N1QL에 의해 자동으로 선택되어야합니다. 여기서의 미묘함은 n1ql.filter입니다. SDC는 이러한 질의를 이기종 버킷에있는 올바른 문서 집합으로 제한해야합니다.

  • adhoc : 준비된 진술에 관한 것입니다. SDC는이 기능을 사용하지 않으며 adhoc에 대한 기본값을 가진 N1QL 쿼리 만 생성합니다 (여전히 알고있는 한 true입니다). 이 주석에 의해 생성 된 쿼리를 기록하고 효과적으로 어쩌면, 인덱스가 포착되지 않는 것을 볼 수있는 WHERE 절에 두 표현식을 반전 시도하는 데에 EXPLAIN을 실행 한 경우

?

+0

감사합니다. couchbase에서 임시 플래그의 의미를 잘못 이해했으나 일반적으로 스프링 데이터 couchbase는 비 adhoc 쿼리를 지원하지 않습니다. – IgorekPotworek