翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
拡張ドキュメント API の使用を開始する
拡張ドキュメント API には、DynamoDB 拡張クライアント API に必要なものと同じ依存関係が必要です。また、このトピックの冒頭で示したように、DynamoDbEnhancedClient インスタンスも必要です。
拡張ドキュメント API は AWS SDK for Java 2.x のバージョン 2.20.3 でリリースされたため、そのバージョンかそれ以降が必要です。
DocumentTableSchema
および DynamoDbTable
を作成する
拡張ドキュメント API を使用して DynamoDB テーブルに対してコマンドを呼び出すには、テーブルをクライアント側の DynamoDbTable<EnhancedDocument>
拡張クライアントの table()
メソッドは DynamoDbTable<EnhancedDocument>
インスタンスを作成し、DynamoDB テーブル名と DocumentTableSchema
のパラメータを必要とします。
DocumentTableSchemaAttributeConverterProvider.defaultProvider()
メソッドはデフォルトタイプ
次のコードスニペットは、スキーマレス person
オブジェクトを格納する DynamoDB EnhancedDocument
テーブルのクライアント側表現を生成するコードを示しています。
DynamoDbTable<EnhancedDocument> documentDynamoDbTable = enhancedClient.table("person", TableSchema.documentSchemaBuilder() // Specify the primary key attributes. .addIndexPartitionKey(TableMetadata.primaryIndexName(),"id", AttributeValueType.S) .addIndexSortKey(TableMetadata.primaryIndexName(), "lastName", AttributeValueType.S) // Specify attribute converter providers. Minimally add the default one. .attributeConverterProviders(AttributeConverterProvider.defaultProvider()) .build()); // Call documentTable.createTable() if "person" does not exist in DynamoDB. // createTable() should be called only one time.
このセクション全体で使用される person
オブジェクトの JSON 表現を以下に示します。
{ "id": 1, "firstName": "Richard", "lastName": "Roe", "age": 25, "addresses": { "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" }, "work": { "zipCode": "00001", "city": "Anywhere", "state": "FL", "street": "100 Main Street" } }, "hobbies": [ "Hobby 1", "Hobby 2" ], "phoneNumbers": [ { "type": "Home", "number": "555-0100" }, { "type": "Work", "number": "555-0119" } ] }