code: public Future<QueryResult> queryAsync(
              final QueryRequest queryRequest,
              final AsyncHandler<QueryRequest, QueryResult> asyncHandler)
                      throws AmazonServiceException, AmazonClientException {
          return executorService.submit(new Callable<QueryResult>() {
              public QueryResult call() throws Exception {
              	QueryResult result;
                  try {
              		result = query(queryRequest);
              	} catch (Exception ex) {
              	    asyncHandler.onError(ex);
      				throw ex;
              	}
              	asyncHandler.onSuccess(queryRequest, result);
                 	return result;
  		    }
  		});
      }
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 operation on AmazonDynamoDB.
  @param asyncHandler Asynchronous callback handler for events in the
  life-cycle of the request. Users could provide the implementation of
  the four callback methods in this interface to process the operation
  result or handle the exception.
  
  @return A Java Future object containing the response from the Query
  service method, as returned by AmazonDynamoDB.
  
  @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.