code: public QueryResult query(QueryRequest queryRequest)
              throws AmazonServiceException, AmazonClientException {
          ExecutionContext executionContext = createExecutionContext(queryRequest);
          AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
          Request<QueryRequest> request = marshall(queryRequest,
                  new QueryRequestMarshaller(),
                  executionContext.getAwsRequestMetrics());
          // Binds the request metrics to the current request.
          request.setAWSRequestMetrics(awsRequestMetrics);
          Unmarshaller<QueryResult, JsonUnmarshallerContext> unmarshaller = new QueryResultJsonUnmarshaller();
          JsonResponseHandler<QueryResult> responseHandler = new JsonResponseHandler<QueryResult>(unmarshaller);
          return invoke(request, responseHandler, executionContext);
      }
docs: <p>
  Gets the values of one or more items and its attributes by primary key
  (composite primary key, only).
  </p>
  <p>
  Narrow the scope of the query using comparison operators on the
  <code>RangeKeyValue</code> of the composite key. Use the
  <code>ScanIndexForward</code> parameter to get results in forward or
  reverse order by range key.
  </p>
  
  @param queryRequest Container for the necessary parameters to execute
  the Query service method on AmazonDynamoDB.
  
  @return The response from the Query service method, as returned by
  AmazonDynamoDB.
  
  @throws ProvisionedThroughputExceededException
  @throws InternalServerErrorException
  @throws ResourceNotFoundException
  
  @throws AmazonClientException
  If any internal errors are encountered inside the client while
  attempting to make the request or handle the response.  For example
  if a network connection is not available.
  @throws AmazonServiceException
  If an error response is returned by AmazonDynamoDB indicating
  either a problem with the data in the request, or a server side issue.