최신 버전의 Java SDK (작성 시점 기준 2.3.3)에 새로운 클래스가 도입되었습니다: RawQueryExecutor. 이는 직접적인 결과를 제공합니다. N1QL 또는 FTS 쿼리를 직접 사용할 때와 마찬가지로 JSON 문자열 또는 JsonObject로 전달할 수 있습니다. 답변은 행으로 래핑되지 않습니다. 따라서 메서드의 결과를 클라이언트에 직접 전달할 수 있습니다. 추가 매핑이나 그 어떤 것도 필요하지 않습니다.
이는 SELECT 절을 통해 필요한 것을 정확히 쿼리할 수 있으므로 N1QL 쿼리에 특히 유용합니다. 적절한 커버링 인덱스와 함께 사용하면 매우 효율적입니다.
비동기 코드 샘플은 다음과 같습니다:
|
1 2 3 |
AsyncRawQueryExecutor asyncRawQueryExecutor= new AsyncRawQueryExecutor("default", "", bucket.core()); Observable<String> result = asyncRawQueryExecutor.n1qlToRawJson(N1qlQuery.simple("Select name, abv, ibu, style FROM `beer-sample` WHERE ibu IS NOT MISSING ORDER BY ibu LIMIT 10 OFFSET 10")); |
동기식입니다:
|
1 2 3 |
RawQueryExecutor rawQueryExecutor = new RawQueryExecutor("default", "", bucket.core(), bucket.environment()); String jsonString = rawQueryExecutor.n1qlToRawJson(N1qlQuery.simple("Select name, abv, ibu, style FROM `beer-sample` WHERE ibu IS NOT MISSING ORDER BY ibu LIMIT 10 OFFSET 10")); |
이 기능이 유용하다고 생각하시는지, 그리고 더 간단한 작업을 위해 이 기능을 원하시는지 알고 싶습니다. 여러분의 의견을 알려주세요!