

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utiliser les fonctionnalités de cartographie avancées
<a name="ddb-en-client-adv-features"></a>

Découvrez les fonctionnalités avancées du schéma de table dans l'API DynamoDB Enhanced Client.

## Comprendre les types de schéma de table
<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)`est l'interface permettant d'accéder à la fonctionnalité de mappage de l'API DynamoDB Enhanced Client. Il peut mapper un objet de données vers et depuis une carte de [AttributeValues](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/AttributeValue.html). Un `TableSchema` objet doit connaître la structure de la table qu'il mappe. Ces informations de structure sont stockées dans un [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)objet.

L'API client améliorée comporte plusieurs implémentations de`TableSchema`, qui suivent. 

### Schéma de table généré à partir de classes annotées
<a name="ddb-en-client-adv-features-schema-mapped"></a>

La création d'une classe à `TableSchema` partir de classes annotées est une opération modérément coûteuse. Nous vous recommandons donc de ne le faire qu'une seule fois, au démarrage de l'application.

 [ BeanTableSchema ](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/BeanTableSchema.html)   
Cette implémentation est construite sur la base des attributs et des annotations d'une classe de bean. Un exemple de cette approche est présenté dans la [section Commencer](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-anno-bean).  
Si a ne `BeanTableSchema` se comporte pas comme prévu, activez la journalisation du débogage pour. `software.amazon.awssdk.enhanced.dynamodb.beans`

[ImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/ImmutableTableSchema.html)  
Cette implémentation est construite à partir d'une classe de données immuable. Cette approche est décrite dans la [Travaillez avec des classes de données immuables](ddb-en-client-use-immut.md) section.

### Schéma de table généré avec un générateur
<a name="ddb-en-client-adv-features-schema-static"></a>

Les éléments suivants `TableSchema` sont créés à partir du code à l'aide d'un générateur. Cette approche est moins coûteuse que celle qui utilise des classes de données annotées. L'approche du générateur évite l'utilisation d'annotations et ne nécessite pas de normes de JavaBean dénomination.

[StaticTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticTableSchema.html)  
Cette implémentation est conçue pour les classes de données mutables. La section de démarrage de ce guide explique comment [générer un à `StaticTableSchema` l'aide d'un générateur](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)  
De la même manière que vous créez un`StaticTableSchema`, vous générez une implémentation de ce type en `TableSchema` utilisant un [générateur](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html) à utiliser avec des classes de données immuables.

### Schéma de table pour les données sans schéma fixe
<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)  
Contrairement aux autres implémentations de`TableSchema`, vous ne définissez pas d'attributs pour une `DocumentTableSchema` instance. En général, vous ne spécifiez que les clés primaires et les fournisseurs de convertisseurs d'attributs. Une `EnhancedDocument` instance fournit les attributs que vous créez à partir d'éléments individuels ou d'une chaîne JSON.