如何将 dynamoDB BatchSave API 失败的批处理结果转换为 pojo 列表?

SRI*_*RLA 2 java amazon-dynamodb

如何将 dynamoDB BatchSave API 失败的批处理结果转换为 pojo 列表?dynamoDB BatchSave API 失败的批处理结果以 DDB 低级 API 类(如 PutRequest/DeleteRequest/WriteRequest/Map)表示。

有没有一种简单的方法将Map转换为代表DDB表项的pojo?

花了几个小时才找到解决方案。因此,我想创建一个问题并提供答案,以节省其他人遇到类似用例的时间。

SRI*_*RLA 5

private List<T> getFailedBatchListItems(final FailedBatch failedBatch, final Class<T> clazz) {
    return failedBatch.getUnprocessedItems()
                      .values()
                      .stream()
                      .flatMap(List::stream)
                      .map(WriteRequest::getPutRequest)
                      .map(PutRequest::getItem)
                      .map(e -> dynamoDBMapper.marshallIntoObject(clazz, e))
                      .collect(toList());
}
Run Code Online (Sandbox Code Playgroud)