Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

DynamoDBMapper 的可选配置设置

在创建 DynamoDBMapper 实例时,它具有某些默认行为;您可以使用 DynamoDBMapperConfig 类来覆盖这些默认行为。

以下代码段创建具有自定义设置的 DynamoDBMapper

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDBMapperConfig mapperConfig = new DynamoDBMapperConfig( DynamoDBMapperConfig.SaveBehavior.CLOBBER, DynamoDBMapperConfig.ConsistentReads.CONSISTENT, null, //TableNameOverride - leaving this at default setting DynamoDBMapperConfig.PaginationLoadingStrategy.EAGER_LOADING ); DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig, cp);

有关更多信息,请参阅 AWS SDK for Java API Reference中的 DynamoDBMapperConfig

您可以针对 DynamoDBMapperConfig 的实例使用以下参数:

  • DynamoDBMapperConfig.ConsistentReads 枚举值:

    • EVENTUAL - 此映射器实例使用最终一致性读取请求。

    • CONSISTENT - 此映射器实例使用强一致性读取请求。您可以将此可选设置用于 loadqueryscan 操作。强一致性读取会影响性能和成本;有关更多信息,请参阅 DynamoDB 产品详细信息页

    如果您未指定适用于映射器实例的读取一致性设置,则默认为 EVENTUAL

  • DynamoDBMapperConfig.PaginationLoadingStrategy 枚举值 - 控制映射器实例如何处理分页数据列表 (如,来自 queryscan的结果):

    • LAZY_LOADING - 该映射器实例在可能时加载数据,并将所有加载的结果保留在内存中。

    • EAGER_LOADING - 该映射器实例在列表初始化之后立即加载数据。

    • ITERATION_ONLY - 您只能使用 Iterator 从列表读取。在迭代过程中,该列表会在加载下一页之前清除所有之前的结果,这样该列表就会将至多一页加载的结果保留在内存中。这也意味着只能对该列表迭代一次。当处理较大的项目时,为了减少内存开销,建议采用这种策略。

    如果您不为映射器实例指定分页加载策略,则会默认为 LAZY_LOADING

  • DynamoDBMapperConfig.SaveBehavior 枚举值 – 指定映射器实例在保存操作期间如何处理属性:

    • UPDATE - 在保存操作期间,所有已建模的属性都将更新,未建模的属性不受影响。基元数字类型 (byte、int 和 long) 设置为 0。数据元类型设置为空。

    • CLOBBER - 清除并替换保存操作期间的所有属性,包括未建模的属性。这是通过删除并重新创建项目完成的。受版本控制的字段约束也将被忽略。

    如果您未指定适用于映射器实例的保存行为,则会默认为 UPDATE

  • DynamoDBMapperConfig.TableNameOverride 对象 - 指示映射器实例忽略由类的 DynamoDBTable 注释指定的表名称,改为使用您提供的不同表名称。当您在运行时将数据划分到多个表中时,可以使用此数据元。

如果需要,您可以针对每个操作覆盖 DynamoDBMapper 的默认配置数据元。