List of usage examples for com.amazonaws.services.dynamodbv2.model ScanRequest setFilterExpression
public void setFilterExpression(String filterExpression)
A string that contains conditions that DynamoDB applies after the Scan
operation, but before the data is returned to you.
From source file:org.iternine.jeppetto.dao.dynamodb.DynamoDBQueryModelDAO.java
License:Apache License
private Iterable<T> scanItems(QueryModel queryModel, ConditionExpressionBuilder conditionExpressionBuilder) { ScanRequest scanRequest = new ScanRequest(tableName); if (queryModel.getFirstResult() > 0) { logger.warn(/*from w ww .j a v a2 s. co m*/ "DynamoDB does not support skipping results. Call setPosition() on DynamoDBIterable instead."); } if (queryModel.getMaxResults() > 0) { scanRequest.setLimit(queryModel.getMaxResults()); } if (queryModel.getSorts() != null) { logger.warn("Not able to sort when performing a 'scan' operation. Ignoring... "); } Map<String, String> expressionAttributeNames; scanRequest.setProjectionExpression(projectionExpression); if (conditionExpressionBuilder.hasExpression()) { scanRequest.setFilterExpression(conditionExpressionBuilder.getExpression()); if (!conditionExpressionBuilder.getExpressionAttributeValues().isEmpty()) { scanRequest.setExpressionAttributeValues(conditionExpressionBuilder.getExpressionAttributeValues()); } if (projectionExpressionNames.isEmpty()) { expressionAttributeNames = conditionExpressionBuilder.getExpressionAttributeNames(); } else if (conditionExpressionBuilder.getExpressionAttributeNames().isEmpty()) { expressionAttributeNames = projectionExpressionNames; } else { expressionAttributeNames = new LinkedHashMap<String, String>(); expressionAttributeNames.putAll(conditionExpressionBuilder.getExpressionAttributeNames()); expressionAttributeNames.putAll(projectionExpressionNames); } } else { expressionAttributeNames = projectionExpressionNames; } if (!expressionAttributeNames.isEmpty()) { scanRequest.setExpressionAttributeNames(expressionAttributeNames); } return new ScanIterable<T>(dynamoDB, persistableEnhancer, scanRequest, rangeKeyField == null ? Collections.singleton(hashKeyField) : Arrays.asList(hashKeyField, rangeKeyField)); }