Я пишу пример, в котором вы можете обновить несколько элементов в одной таблице. У меня есть первичный ключ как идентификатор и ключ диапазона как Datetime. На самом деле в Dynamodb нет функции, поэтому я сначала запрашиваю все переменные с хеш-ключом и ключом диапазона, из которых я хочу обновить. После того, как все данные будут сохранены в List, загрузка данных с их хеш-ключом и диапазоном и изменение или обновление поля с помощью set и сохраните его. Поскольку я редактирую хэш-ключ, оригинал хеш-ключа будет там, нам нужно его удалить. Если вам нужно обновить следующий атрибут, нет необходимости. Я не добавлял удаляющий код, пишите сами. Вы можете запросить, если вы запутались, ваша запись с хеш-ключом будет по-прежнему, и будет добавлена новая запись с новым хеш-ключом. Код ниже:
public static void main(String[] args) {
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
DynamoDBMapper mapper = new DynamoDBMapper(client);
client.setEndpoint("http://localhost:8000/");
String fromDate = "2016-01-13";
String toDate = "2016-02-05";
User user = new User();
user.setId("YourHashKey");
LocalDate frmdate = LocalDate.parse(fromDate, DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate todate = LocalDate.parse(toDate, DateTimeFormatter.ISO_LOCAL_DATE);
LocalDateTime startfrm = frmdate.atStartOfDay();
LocalDateTime endto = todate.atTime(23, 59, 59);
Condition rangeCondition = new Condition().withComparisonOperator(ComparisonOperator.BETWEEN.toString()).withAttributeValueList(new AttributeValue().withS(startfrm.toString()), new AttributeValue().withS(endto.toString()));
DynamoDBQueryExpression<User> queryExpression = new DynamoDBQueryExpression<User>().withHashKeyValues(user).withRangeKeyCondition("DATETIME", rangeCondition);
List<User> latestReplies = mapper.query(User.class, queryExpression);
for (User in : latestReplies) {
System.out.println(" Hashid: " + in.getId() + " DateTime: " + in.getDATETIME() + "location:" + in.getLOCID());
User ma = mapper.load(User.class, in.getId(), in.getDATETIME());
ma.setLOCID("Ohelig");
mapper.save(ma);
}
}
person
Yanish Pradhananga
schedule
10.02.2016