Amazon dynamodb DynamoDBMapper批量加载传入参数

Amazon dynamodb DynamoDBMapper批量加载传入参数,amazon-dynamodb,Amazon Dynamodb,DDBMapper有两种调用batchLoad的方法,在不同的传入参数中有所不同 public Map<String,List<Object>> batchLoad(Iterable<? extends Object> itemsToGet) public Map<String,List<Object>> batchLoad(Map<Class<?>,List<KeyPair>> itemsToGe

DDBMapper有两种调用batchLoad的方法,在不同的传入参数中有所不同

public Map<String,List<Object>> batchLoad(Iterable<? extends Object> itemsToGet)

public Map<String,List<Object>> batchLoad(Map<Class<?>,List<KeyPair>> itemsToGet)
publicmap批处理加载(Iterable,List>itemsToGet)
我理解第二种方法,它通过指定keyPair对我来说更有意义。
那么第一个呢?那么基本上只是为了传递一个列表?那有什么区别呢?第二个显然看起来更复杂

假设我有一个用户对象,其中包含分区键userId和范围键createdDate。我想批量加载3个用户

在第二个选项中,我必须创建userId和createdDate的3个密钥对。在第一个选项中,我使用userId和createdDate实例化了3个用户对象,并将它们放在一个列表中

如果用户构造函数中有逻辑,那么第一个选项可能更合适。例如,createdDate不能超过1年前。在这种情况下,创建用户对象是执行构造函数逻辑的一个优势。或者,我可能已经从应用程序的其他部分传递了User对象,在这种情况下,从它们创建密钥对只是我不需要编写的额外代码


所以基本上没什么区别。我怀疑有些人会觉得第一个选项更令人满意,因为DynamoDBMapper是一个对象持久性解决方案,所以它应该支持传递对象(而不是未定义的键对)。

如果您不知道它将返回多少项怎么办?(例如,一个用户有多个游戏分数)。您是否仅限于使用选项2?