

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

# 使用進階映射功能
<a name="ddb-en-client-adv-features"></a>

了解 DynamoDB 增強型用戶端 API 中的進階資料表結構描述功能。

## 了解資料表結構描述類型
<a name="ddb-en-client-adv-features-schm-overview"></a>

`[TableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableSchema.html)` 是 DynamoDB 增強型用戶端 API 映射功能的介面。它可以在 [AttributeValues](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/AttributeValue.html) 的映射中映射資料物件。`TableSchema` 物件需要知道要映射之資料表的結構。此結構資訊會存放在 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableMetadata.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableMetadata.html) 物件中。

增強型用戶端 API 有數個 實作`TableSchema`，如下。

### 從註釋類別產生的資料表結構描述
<a name="ddb-en-client-adv-features-schema-mapped"></a>

從`TableSchema`註釋類別建置 是一項中等昂貴的操作，因此我們建議在應用程式啟動時執行此操作一次。

 [ BeanTableSchema ](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/BeanTableSchema.html)   
此實作是根據 Bean 類別的屬性和註釋建置。此方法的範例會在[入門區段](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-anno-bean)中示範。  
如果 `BeanTableSchema` 的行為不如預期，請啟用 的偵錯記錄`software.amazon.awssdk.enhanced.dynamodb.beans`。

[ImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/ImmutableTableSchema.html)  
此實作是從不可變的資料類別建置而成。此方法說明於 [使用不可變的資料類別](ddb-en-client-use-immut.md)一節。

### 建置器產生的資料表結構描述
<a name="ddb-en-client-adv-features-schema-static"></a>

下列 `TableSchema`是使用建置器從程式碼建置。此方法的成本低於使用註釋資料類別的方法。建置器方法可避免使用註釋，且不需要 JavaBean 命名標準。

[StaticTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticTableSchema.html)  
此實作專為可變資料類別而建置。本指南的入門章節示範如何使用[`StaticTableSchema`建置器產生](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-builder) 。

[StaticImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html)  
與您建置 的方式類似`StaticTableSchema`，您可以使用`TableSchema`[建置器](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html)來產生此類型 的實作，以搭配不可變的資料類別使用。

### 無固定結構描述之資料的資料表結構描述
<a name="ddb-en-client-adv-features-schema-document"></a>

[DocumentTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchema.html)  
與其他 實作不同`TableSchema`，您不定義`DocumentTableSchema`執行個體的屬性。通常，您只能指定主索引鍵和屬性轉換器提供者。`EnhancedDocument` 執行個體提供您從個別元素或 JSON 字串建置的屬性。