Datastore のデータ オブジェクトはエンティティと呼ばれ、個々のエンティティはクエリの目的で特定の種類に分類されます。たとえば、人事アプリケーションを作成する場合、各従業員を Employee
という種類のエンティティで表すことができます。エンティティ データ値は、プロパティの形で表されます。エンティティの詳細については、エンティティ、プロパティ、キーを参照してください。
エンティティの作成とプロパティの設定
Java で新しいエンティティを作成するには、そのエンティティの種類を Entity()
コンストラクタの引数として指定して、Entity
クラスのインスタンスを作成します。必要に応じてエンティティのプロパティを入力してから、そのエンティティを DatastoreService.put()
メソッドの引数として渡してデータストアに保存します。エンティティのキー名を指定するには、コンストラクタの 2 番目の引数として渡します。
次の例では、種類が Employee
のエンティティを作成し、そのプロパティ値を設定してデータストアに保存します。
キー名を指定しない場合は、Datastore によって自動的にエンティティのキーとして数値 ID が生成されます。
エンティティの取得
指定したキーで識別されるエンティティを取得するには、Key
オブジェクトを DatastoreService.get()
メソッドに渡します。
エンティティの更新
既存のエンティティを更新するには、Entity オブジェクトの属性を変更してから、それを DatastoreService.put()
メソッドに渡します。そのオブジェクト データで既存のエンティティが上書きされます。put()
を呼び出すたびに、オブジェクト全体が Datastore に送信されます。
エンティティの削除
エンティティを削除するには、エンティティのキーを指定して、DatastoreService.delete()
メソッドを実行します。
エンティティの一括削除
多数のエンティティを削除する必要がある場合は、Dataflow を使用してエンティティを一括削除することをおすすめします。
バッチ オペレーションの使用
1 回の Datastore 呼び出しで複数のエンティティを操作したい場合は、一括処理を使用できます。
バッチ呼び出しの例を次に示します。
このバッチ オペレーションでは、すべてのエンティティまたはキーがエンティティ グループごとにグループ化され、エンティティ グループごとにリクエストされた処理が並列に行われます。この処理では、サービス呼び出しの 1 回分のオーバーヘッドしか発生しないため、エンティティごとに個別の呼び出しを行うよりも高速になります。バッチ オペレーションで複数のエンティティ グループを対象とする場合は、サーバー側で各エンティティ グループの処理が並列に行われます。
put()
または delete()
の一括呼び出しは、エンティティによって成功する場合と失敗する場合があります。
呼び出しが完全に成功するか完全に失敗することが重要な場合は、トランザクションを使用することと、処理対象のすべてのエンティティが同じグループに存在することが必要です。