DynamoDBMapper 的可选配置设置
在创建 DynamoDBMapper 实例时,它具有某些默认行为;您可以使用 DynamoDBMapperConfig 类来覆盖这些默认行为。
以下代码段创建具有自定义设置的 DynamoDBMapper:
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDBMapperConfig mapperConfig = DynamoDBMapperConfig.builder() .withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.CLOBBER) .withConsistentReads(DynamoDBMapperConfig.ConsistentReads.CONSISTENT) .withTableNameOverride(null) .withPaginationLoadingStrategy(DynamoDBMapperConfig.PaginationLoadingStrategy.EAGER_LOADING) .build(); DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig);
有关更多信息,请参阅适用于 Java 的 AWS SDK API 参考的 DynamoDBMapperConfig。
您可以针对 DynamoDBMapperConfig 的实例使用以下参数:
-
DynamoDBMapperConfig.ConsistentReads枚举值:-
EVENTUAL—此映射器实例使用最终一致性读取请求。 -
CONSISTENT—此映射器实例使用强一致性读取请求。您可以将此可选设置用于load、query或scan操作。强一致性读取会影响性能和成本;有关更多信息,请参阅 DynamoDB 产品详细信息页。
如果您未指定适用于映射器实例的读取一致性设置,则默认为
EVENTUAL。注意
此值适用于 DynamoDBMapper 的
query、querypage、load和batch load操作。 -
-
DynamoDBMapperConfig.PaginationLoadingStrategy枚举值 — 控制映射器实例如何处理分页数据列表(如,来自query或scan的结果):-
LAZY_LOADING—该映射器实例在可能时加载数据,并将所有加载的结果保留在内存中。 -
EAGER_LOADING—该映射器实例在列表初始化之后立即加载数据。 -
ITERATION_ONLY—您只能使用 Iterator 从列表读取。在迭代过程中,该列表会在加载下一页之前清除所有之前的结果,这样该列表就会将至多一页加载的结果保留在内存中。这也意味着只能对该列表迭代一次。当处理较大的项目时,为了减少内存开销,建议采用这种策略。
如果您不为映射器实例指定分页加载策略,则会默认为
LAZY_LOADING。 -
-
DynamoDBMapperConfig.SaveBehavior枚举值 – 指定映射器实例在保存操作期间如何处理属性:-
UPDATE—在保存操作期间,所有已建模的属性都将更新,未建模的属性不受影响。基元数字类型 (byte、int 和 long) 设置为 0。对象类型设置为空。 -
CLOBBER—清除并替换保存操作期间的所有属性,包括未建模的属性。这是通过删除并重新创建项目完成的。受版本控制的字段约束也将被忽略。
如果您未指定适用于映射器实例的保存行为,则会默认为
UPDATE。注意
DynamoDBMapper 事务操作不支持
DynamoDBMapperConfig.SaveBehavior枚举。 -
-
DynamoDBMapperConfig.TableNameOverride对象—指示映射器实例忽略由类的DynamoDBTable注释指定的表名称,改为使用您提供的不同表名称。当您在运行时将数据划分到多个表中时,可以使用它。
如果需要,您可以针对每个操作覆盖 DynamoDBMapper 的默认配置对象。