List of usage examples for com.amazonaws.services.dynamodbv2.model UpdateItemRequest setReturnValues
public void setReturnValues(ReturnValue returnValues)
Use ReturnValues
if you want to get the item attributes as they appear before or after they are updated.
From source file:org.iternine.jeppetto.dao.dynamodb.DynamoDBQueryModelDAO.java
License:Apache License
private T updateItem(Map<String, AttributeValue> key, UpdateExpressionBuilder updateExpressionBuilder, ConditionExpressionBuilder conditionExpressionBuilder, ResultFromUpdate resultFromUpdate) { try {/*from w ww . j a va 2 s . com*/ UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName(tableName).withKey(key) .withUpdateExpression(updateExpressionBuilder.getExpression()); Map<String, AttributeValue> expressionAttributeValues; Map<String, String> expressionAttributeNames; if (conditionExpressionBuilder == null) { expressionAttributeValues = updateExpressionBuilder.getExpressionAttributeValues(); expressionAttributeNames = updateExpressionBuilder.getExpressionAttributeNames(); } else { expressionAttributeValues = new LinkedHashMap<String, AttributeValue>(); expressionAttributeNames = new LinkedHashMap<String, String>(); expressionAttributeValues.putAll(updateExpressionBuilder.getExpressionAttributeValues()); expressionAttributeNames.putAll(updateExpressionBuilder.getExpressionAttributeNames()); expressionAttributeValues.putAll(conditionExpressionBuilder.getExpressionAttributeValues()); expressionAttributeNames.putAll(conditionExpressionBuilder.getExpressionAttributeNames()); updateItemRequest.setConditionExpression(conditionExpressionBuilder.getExpression()); } if (!expressionAttributeValues.isEmpty()) { updateItemRequest.setExpressionAttributeValues(expressionAttributeValues); } if (!expressionAttributeNames.isEmpty()) { updateItemRequest.setExpressionAttributeNames(expressionAttributeNames); } if (resultFromUpdate != ResultFromUpdate.ReturnNone) { updateItemRequest .setReturnValues(resultFromUpdate == ResultFromUpdate.ReturnPreUpdate ? ReturnValue.ALL_OLD : ReturnValue.ALL_NEW); UpdateItemResult result = dynamoDB.updateItem(updateItemRequest); T t = ConversionUtil.getObjectFromItem(result.getAttributes(), entityClass); ((DynamoDBPersistable) t).__markPersisted(dynamoDB.toString()); return t; } else { dynamoDB.updateItem(updateItemRequest); return null; } } catch (Exception e) { throw new JeppettoException(e); } }