Example usage for com.amazonaws.services.dynamodbv2.model ScanRequest withExpressionAttributeNames

List of usage examples for com.amazonaws.services.dynamodbv2.model ScanRequest withExpressionAttributeNames

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.model ScanRequest withExpressionAttributeNames.

Prototype


public ScanRequest withExpressionAttributeNames(java.util.Map<String, String> expressionAttributeNames) 

Source Link

Document

One or more substitution tokens for attribute names in an expression.

Usage

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);

}