spring-data-couchbase
spring-data-couchbase copied to clipboard
implement AnalyticsQuery
package org.springframework.data.couchbase.core.query;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.data.couchbase.domain.Airport;
import org.springframework.data.couchbase.domain.Config;
import org.springframework.data.couchbase.util.Capabilities;
import org.springframework.data.couchbase.util.ClusterType;
import org.springframework.data.couchbase.util.IgnoreWhen;
import org.springframework.data.couchbase.util.JavaIntegrationTests;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import com.couchbase.client.java.query.QueryOptions;
import com.couchbase.client.java.query.QueryScanConsistency;
import java.util.List;
@IgnoreWhen(missesCapabilities = Capabilities.QUERY, clusterTypes = ClusterType.MOCKED)
@SpringJUnitConfig(Config.class)
public class queryExample extends JavaIntegrationTests {
@Autowired CouchbaseTemplate template;
@Test
public void queryTest() {
N1QLExpression expression = N1QLExpression.x("SQL++ Query");
N1QLQuery query = buildQuery(expression, QueryScanConsistency.REQUEST_PLUS);
List<Airport> airports = template.findByQuery(Airport.class).matching(query).all();
System.err.println("airports: "+airports);
}
public static N1QLQuery buildQuery(N1QLExpression expression, QueryScanConsistency scanConsistency) {
QueryOptions opts = QueryOptions.queryOptions().scanConsistency(scanConsistency);
return new N1QLQuery(expression, opts);
}
@Test
public void analyticsTest() {
N1QLExpression expression = N1QLExpression.x("SQL++ Query");
AnalyticsQuery query = buildAnalytics(expression, QueryScanConsistency.REQUEST_PLUS);
List<Airport> airports = template.findByQuery(Airport.class).matching(query).all();
System.err.println("airports: "+airports);
}
private AnalyticsQuery buildAnalytics(N1QLExpression expression, QueryScanConsistency scanConsistency) {
QueryOptions opts = QueryOptions.queryOptions().scanConsistency(scanConsistency);
return new AnalyticsQuery(expression, opts);
}
}