

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan fitur pemetaan tingkat lanjut
<a name="ddb-en-client-adv-features"></a>

Pelajari tentang fitur skema tabel lanjutan di DynamoDB Enhanced Client API.

## Memahami jenis skema tabel
<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)`adalah antarmuka ke fungsionalitas pemetaan DynamoDB Enhanced Client API. Hal ini dapat memetakan objek data ke dan dari peta [AttributeValues](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/AttributeValue.html). Sebuah `TableSchema` objek perlu tahu tentang struktur tabel yang dipetakannya. Informasi struktur ini disimpan dalam suatu [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)objek.

API klien yang disempurnakan memiliki beberapa implementasi`TableSchema`, yang mengikuti. 

### Skema tabel yang dihasilkan dari kelas beranotasi
<a name="ddb-en-client-adv-features-schema-mapped"></a>

Ini adalah operasi yang cukup mahal untuk membangun `TableSchema` dari kelas beranotasi, jadi kami sarankan melakukan ini sekali, saat startup aplikasi.

 [ BeanTableSchema ](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/BeanTableSchema.html)   
Implementasi ini dibangun berdasarkan atribut dan anotasi kelas kacang. Contoh pendekatan ini ditunjukkan di [bagian Memulai](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-anno-bean).  
Jika a `BeanTableSchema` tidak berperilaku seperti yang Anda harapkan, aktifkan pencatatan debug untuk. `software.amazon.awssdk.enhanced.dynamodb.beans`

[ImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/ImmutableTableSchema.html)  
Implementasi ini dibangun dari kelas data yang tidak dapat diubah. Pendekatan ini dijelaskan di [Bekerja dengan kelas data yang tidak dapat diubah](ddb-en-client-use-immut.md) bagian ini.

### Skema tabel yang dihasilkan dengan pembangun
<a name="ddb-en-client-adv-features-schema-static"></a>

Berikut `TableSchema` s dibangun dari kode dengan menggunakan pembangun. Pendekatan ini lebih murah daripada pendekatan yang menggunakan kelas data beranotasi. Pendekatan builder menghindari penggunaan anotasi dan tidak memerlukan standar JavaBean penamaan.

[StaticTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticTableSchema.html)  
Implementasi ini dibangun untuk kelas data yang bisa berubah. Bagian memulai dari panduan ini menunjukkan cara [membuat `StaticTableSchema` menggunakan pembangun](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)  
Demikian pula dengan cara Anda membangun`StaticTableSchema`, Anda menghasilkan implementasi jenis ini `TableSchema` menggunakan [pembangun](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html) untuk digunakan dengan kelas data yang tidak dapat diubah.

### Skema tabel untuk data tanpa skema tetap
<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)  
Tidak seperti implementasi lain dari`TableSchema`, Anda tidak mendefinisikan atribut untuk sebuah `DocumentTableSchema` instance. Biasanya, Anda hanya menentukan kunci utama dan penyedia konverter atribut. Sebuah `EnhancedDocument` instance menyediakan atribut yang Anda bangun dari elemen individual atau dari string JSON.