我只是在使用 dynamoDB 的 batchLoad 函数。在这里,documentation
的函数说,它需要的输入是 List<KeyPair>
.但是当我使用 KeyPair 对象时,它会抛出参数应该是 dynamodb annotated class
的错误。 .
我可以使用 DynamoDB 类,我只设置了 hashKey and rangeKey
类的属性并将它们作为参数传递。但现在我的用例是类(DynamoDB 注释),我使用的是 @NonNull
领域。如果我必须为此传递参数,我必须在其中设置垃圾值,这显然是不可取的。有什么帮助/建议吗?
谢谢!
最佳答案
这是工作示例。
摘要:-
与模型类:-
Map<Class<?>, List<KeyPair>> keyPairForTable = new HashMap<>();
keyPairForTable.put(Movies.class, keyPairList);
完整代码:-
public Boolean batchLoadMoviesUsingKeyPair() {
DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(dynamoDBClient);
KeyPair keyPair1 = new KeyPair();
keyPair1.withHashKey(1991);
keyPair1.withRangeKey("Movie with map attribute");
KeyPair keyPair2 = new KeyPair();
keyPair2.withHashKey(2010);
keyPair2.withRangeKey("The Big New Movie 2010");
List<KeyPair> keyPairList = new ArrayList<>();
keyPairList.add(keyPair1);
keyPairList.add(keyPair2);
Map<Class<?>, List<KeyPair>> keyPairForTable = new HashMap<>();
keyPairForTable.put(Movies.class, keyPairList);
Map<String, List<Object>> batchResults = dynamoDBMapper.batchLoad(keyPairForTable);
for (Map.Entry<String, List<Object>> entry : batchResults.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
return true;
}
关于amazon-dynamodb - DynamoDB 映射器 "batchLoad()"输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739021/