List of usage examples for com.amazonaws.services.dynamodbv2.model ScanRequest withExpressionAttributeNames
public ScanRequest withExpressionAttributeNames(java.util.Map<String, String> expressionAttributeNames)
One or more substitution tokens for attribute names in an expression.
From source file:com.eho.dynamodb.DynamoDBConnection.java
public static ScanResult scan_dynamodb(Map<String, String> strings, Map<String, String> numbers) { Map<String, AttributeValue> expression_values = new HashMap<>(); Map<String, String> expression_names = new HashMap<>(); if (strings.keySet().contains("#jsondocument.#name[0].given[0]") | strings.keySet().contains("#jsondocument.#name[0].#family[0]")) expression_names.put("#name", "name"); if (strings.keySet().contains("#jsondocument.#name[0].#family[0]")) expression_names.put("#family", "family"); expression_names.put("#jsondocument", "json-document"); ScanRequest scanRequest = new ScanRequest().withTableName(DynamoDBConnection.PATIENT_TABLE); int i = 0;/* ww w .j a v a2 s . co m*/ String filter_expression = ""; for (String path : strings.keySet()) { String thisVal = strings.get(path); expression_values.put(":stringval" + i, new AttributeValue().withS(thisVal)); if (filter_expression.equals("")) filter_expression += "(" + path + " = :stringval" + i++ + ")"; else filter_expression += " AND (" + path + " = :stringval" + i++ + ")"; } scanRequest.withExpressionAttributeNames(expression_names).withExpressionAttributeValues(expression_values) .withFilterExpression(filter_expression); return dynamoDBClient.scan(scanRequest); }