public <T> QueryResult<T> query(String partitionKey, String query, final Class<T> classOfT) {
        URI uri = new DatabaseURIHelper(db.getDBUri()).partition(partitionKey).path("_find").build();
        return this.query(uri, query, classOfT);
    }
public < T > QueryResult < T > query ( String partitionKey , String query , final Class < T > classOfT ) { URI uri = new DatabaseURIHelper ( db . getDBUri ( ) ) . partition ( partitionKey ) . path ( "_find" ) . build ( ) ; return this . query ( uri , query , classOfT ) ; }
Execute a partitioned query using an index and a query selector.

Only available in partitioned databases. To verify a database is partitioned call
{@link Database#info()} and check that {@link DbInfo.Props#getPartitioned()} returns
{@code true}.

<p>Example usage:</p>
<pre>
{@code
// Query database partition 'Coppola'.
QueryResult<Movie> movies = db.query("Coppola", new QueryBuilder(and(
gt("Movie_year", 1960),
eq("Person_name", "Al Pacino"))).
fields("Movie_name", "Movie_year").
build(), Movie.class);
}
</pre>

@param partitionKey Database partition to query.
@param query        String representation of a JSON object describing criteria used to
select documents.
@param classOfT     The class of Java objects to be returned in the {@code docs} field of
result.
@param <T>          The type of the Java object to be returned in the {@code docs} field of
result.
@return             A {@link QueryResult} object, containing the documents matching the query
in the {@code docs} field.
@see com.cloudant.client.api.Database#query(String, Class)