DynamoDb batchDelete - как проверить, не удалось ли удалить элемент

Мне нужно иметь возможность записывать элементы, которые не были удалены в процессе пакетного удаления. Я могу получить список ключей, но я не могу проверить случай, когда происходит сбой. Неправильная установка 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));
  }

0 ответов

Другие вопросы по тегам