DynamoDBMapper 的選用組態設定 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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);

如需詳細資訊,請參閱 AWS SDK for Java API 參考資料MapperConfig中的 DynamoDB

您可以針對 DynamoDBMapperConfig 執行個體使用下列引數:

  • DynamoDBMapperConfig.ConsistentReads 列舉值:

    • EVENTUAL:映射器執行個體使用最終一致讀取請求。

    • CONSISTENT:映射器執行個體使用強烈一致讀取請求。您可以搭配使用這個選用設定與 loadqueryscan 操作。強烈一致讀取具有效能和帳單隱憂;如需詳細資訊,請參閱 DynamoDB 產品詳細資訊頁面

    如果您未指定映射器執行個體的讀取一致性設定,則預設值為 EVENTUAL

    注意

    此值僅適用於 DynamoDBMapper 的 queryquerypageload 和 batch load 操作。

  • DynamoDBMapperConfig.PaginationLoadingStrategy 列舉值:控制映射器執行個體如何處理分頁資料清單,例如 queryscan 的結果:

    • LAZY_LOADING:映射器執行個體會在可能時載入資料,並將所有載入的結果保留在記憶體中。

    • EAGER_LOADING:映射器執行個體會在初始化清單時立即載入資料。

    • ITERATION_ONLY:您只能使用從清單中讀取的迭代器。在反覆運算期間,清單會先清除所有先前的結果,再載入下一頁,因此清單最多會將一頁的已載入結果保留在記憶體中。這也表示清單只能重複使用一次。處理大型項目時,建議使用此策略,以減少記憶體負擔。

    如果您未指定映射器執行個體的分頁載入策略,則預設值為 LAZY_LOADING

  • DynamoDBMapperConfig.SaveBehavior 列舉值:指定映射器執行個體在儲存操作期間應該如何處理屬性:

    • UPDATE:在儲存操作期間,會更新所有建模屬性,未建模屬性則不受影響。基本數字類型 (byte、int、long) 設定為 0。物件類型設定為 Null。

    • CLOBBER:在儲存操作期間,清除和取代所有屬性 (包含未建模屬性)。透過刪除並重新建立項目來完成這項操作。使用版本控制的欄位限制條件也會予以忽略。

    如果您未指定映射器執行個體的儲存行為,則預設值為 UPDATE

    注意

    DynamoDBMapper 交易操作不支援 DynamoDBMapperConfig.SaveBehavior 列舉。

  • DynamoDBMapperConfig.TableNameOverride 物件:指示映射器執行個體忽略類別之 DynamoDBTable 註釋所指定的資料表名稱,並改為使用您提供的不同資料表名稱。在執行時間將資料分割為多個資料表時,這十分有用。

您可以視需要覆寫每個操作的 DynamoDBMapper 預設組態物件。