

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa funzionalità di mappatura avanzate
<a name="ddb-en-client-adv-features"></a>

Scopri le funzionalità avanzate dello schema delle tabelle nell'API DynamoDB Enhanced Client.

## Comprendi i tipi di schemi delle tabelle
<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)`è l'interfaccia per la funzionalità di mappatura dell'API DynamoDB Enhanced Client. Può mappare un oggetto di dati da e verso una mappa di. [AttributeValues](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/AttributeValue.html) Un `TableSchema` oggetto deve conoscere la struttura della tabella che sta mappando. Queste informazioni sulla struttura vengono memorizzate in 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)oggetto.

L'API client avanzata ha diverse implementazioni di`TableSchema`, che seguono. 

### Schema di tabella generato da classi annotate
<a name="ddb-en-client-adv-features-schema-mapped"></a>

È un'operazione moderatamente costosa creare una a `TableSchema` partire da classi annotate, quindi consigliamo di farlo una sola volta, all'avvio dell'applicazione.

 [ BeanTableSchema ](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/BeanTableSchema.html)   
Questa implementazione è costruita sulla base degli attributi e delle annotazioni di una classe bean. Un esempio di questo approccio è illustrato nella [sezione Guida introduttiva](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-anno-bean).  
Se a non `BeanTableSchema` si comporta come previsto, abilita la registrazione di debug per. `software.amazon.awssdk.enhanced.dynamodb.beans`

[ImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/ImmutableTableSchema.html)  
Questa implementazione è costruita da una classe di dati immutabile. Questo approccio è descritto nella sezione. [Lavora con classi di dati immutabili](ddb-en-client-use-immut.md)

### Schema di tabella generato con un builder
<a name="ddb-en-client-adv-features-schema-static"></a>

`TableSchema`I seguenti sono creati a partire dal codice utilizzando un builder. Questo approccio è meno costoso dell'approccio che utilizza classi di dati annotate. L'approccio builder evita l'uso di annotazioni e non richiede standard di denominazione. JavaBean 

[StaticTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticTableSchema.html)  
Questa implementazione è progettata per classi di dati mutabili. La sezione introduttiva di questa guida ha dimostrato come [generare un file `StaticTableSchema` utilizzando un builder](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)  
Analogamente a come si crea un`StaticTableSchema`, si genera un'implementazione di questo tipo `TableSchema` utilizzando un [builder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html) da utilizzare con classi di dati immutabili.

### Schema di tabella per dati senza schema fisso
<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)  
A differenza di altre implementazioni di`TableSchema`, non si definiscono gli attributi per un'`DocumentTableSchema`istanza. Di solito, si specificano solo chiavi primarie e fornitori di convertitori di attributi. Un'`EnhancedDocument`istanza fornisce gli attributi creati da singoli elementi o da una stringa JSON.