DynamoDb batchDelete - как проверить, не удалось ли удалить элемент - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно иметь возможность записывать элементы, которые не были удалены в процессе пакетного удаления.Я могу получить список ключей, но я не могу проверить случай, когда происходит сбой.Неправильная установка DynamoDBHashKey не работает.Список сбоев пуст.

@Override
  public void deleteAll(List<Grant> grants) {

    if (grants.stream().anyMatch(g -> StringUtils.isEmpty(g.getHashedRefreshToken()))) {
      throw new RuntimeException("Grant's HashedRefreshToken is null");
    }

    final List<FailedBatch> failedBatches = mapper.batchDelete(grants);

    List<Map<String, AttributeValue>> collect = failedBatches.stream()
        .map(b -> b.getUnprocessedItems())
        .flatMap(e -> e.values().stream())
        .flatMap(e -> e.stream())
        .map(e -> e.getDeleteRequest())
        .map(v -> v.getKey())
        .collect(Collectors.toList());
    // FIXME
    System.out.println("Failed items : " + collect.size());
    collect.forEach(e -> System.out.println(e));
  }
...