code: 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);
      }
docs: 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)