List of usage examples for com.amazonaws.services.dynamodbv2.model Condition setComparisonOperator
public void setComparisonOperator(ComparisonOperator comparisonOperator)
A comparator for evaluating attributes.
From source file:com.clicktravel.infrastructure.persistence.aws.dynamodb.DynamoDbTemplate.java
License:Apache License
private <T extends Item> Collection<T> executeQuery(final AttributeQuery query, final Class<T> itemClass) { final ItemConfiguration itemConfiguration = getItemConfiguration(itemClass); final com.amazonaws.services.dynamodbv2.model.Condition condition = new com.amazonaws.services.dynamodbv2.model.Condition(); if (query.getCondition().getComparisonOperator() == Operators.NULL) { condition.setComparisonOperator(ComparisonOperator.NULL); } else if (query.getCondition().getComparisonOperator() == Operators.NOT_NULL) { condition.setComparisonOperator(ComparisonOperator.NOT_NULL); } else {/*from www.ja v a 2s . c o m*/ if (query.getCondition().getComparisonOperator() == Operators.EQUALS) { condition.setComparisonOperator(ComparisonOperator.EQ); } else if (query.getCondition().getComparisonOperator() == Operators.LESS_THAN_OR_EQUALS) { condition.setComparisonOperator(ComparisonOperator.LE); } else if (query.getCondition().getComparisonOperator() == Operators.GREATER_THAN_OR_EQUALS) { condition.setComparisonOperator(ComparisonOperator.GE); } final Collection<AttributeValue> attributeValueList = new ArrayList<>(); for (final String value : query.getCondition().getValues()) { if (value != null && !value.isEmpty()) { attributeValueList.add(new AttributeValue(value)); } } if (attributeValueList.size() == 0) { return new ArrayList<>(); } condition.setAttributeValueList(attributeValueList); } final Map<String, com.amazonaws.services.dynamodbv2.model.Condition> conditions = new HashMap<>(); conditions.put(query.getAttributeName(), condition); final List<T> totalItems = new ArrayList<>(); Map<String, AttributeValue> lastEvaluatedKey = null; final String tableName = databaseSchemaHolder.schemaName() + "." + itemConfiguration.tableName(); if (itemConfiguration.hasIndexOn(query.getAttributeName())) { do { final String queryAttributeName = query.getAttributeName(); final PrimaryKeyDefinition primaryKeyDefinition = itemConfiguration.primaryKeyDefinition(); final String primaryKeyPropertyName = primaryKeyDefinition.propertyName(); final boolean isPrimaryKeyQuery = queryAttributeName.equals(primaryKeyPropertyName); final QueryRequest queryRequest = new QueryRequest().withTableName(tableName) .withKeyConditions(conditions).withExclusiveStartKey(lastEvaluatedKey); if (!isPrimaryKeyQuery) { queryRequest.withIndexName(queryAttributeName + "_idx"); } final QueryResult queryResult; try { queryResult = amazonDynamoDbClient.query(queryRequest); } catch (final AmazonServiceException e) { throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Query", e); } totalItems.addAll(marshallIntoObjects(itemClass, queryResult.getItems())); lastEvaluatedKey = queryResult.getLastEvaluatedKey(); } while (lastEvaluatedKey != null); } else { logger.debug("Performing table scan with query: " + query); do { final ScanRequest scanRequest = new ScanRequest().withTableName(tableName) .withScanFilter(conditions).withExclusiveStartKey(lastEvaluatedKey); final ScanResult scanResult; try { scanResult = amazonDynamoDbClient.scan(scanRequest); } catch (final AmazonServiceException e) { throw new PersistenceResourceFailureException("Failure while attempting DynamoDb Scan", e); } totalItems.addAll(marshallIntoObjects(itemClass, scanResult.getItems())); lastEvaluatedKey = scanResult.getLastEvaluatedKey(); } while (lastEvaluatedKey != null); } return totalItems; }
From source file:org.apache.hadoop.hive.dynamodb.filter.DynamoDBBinaryFilter.java
License:Open Source License
@Override public Condition createCondition() { Condition condition = new Condition(); condition.setComparisonOperator(operator.getDynamoDBName()); List<AttributeValue> attributeValueList = new ArrayList<AttributeValue>(); attributeValueList//from ww w . java 2 s . co m .add(HiveDynamoDBTypeFactory.getTypeObjectFromHiveType(columnType).getAttributeValue(columnValue)); condition.setAttributeValueList(attributeValueList); return condition; }
From source file:org.apache.hadoop.hive.dynamodb.filter.DynamoDBNAryFilter.java
License:Open Source License
@Override public Condition createCondition() { Condition condition = new Condition(); condition.setComparisonOperator(operator.getDynamoDBName()); List<AttributeValue> attributeValueList = new ArrayList<>(); for (String value : columnValues) { attributeValueList//from w ww.ja v a 2 s . c om .add(HiveDynamoDBTypeFactory.getTypeObjectFromHiveType(columnType).getAttributeValue(value)); } condition.setAttributeValueList(attributeValueList); return condition; }
From source file:org.apache.hadoop.hive.dynamodb.filter.DynamoDBUnaryFilter.java
License:Open Source License
@Override public Condition createCondition() { Condition condition = new Condition(); condition.setComparisonOperator(operator.getDynamoDBName()); return condition; }