エンティティの作成、取得、更新、削除

Google Cloud Datastore 内のデータ オブジェクトは「エンティティ」と呼ばれ、個々のエンティティはクエリのために特定の「種類」で分類されます。たとえば、人事アプリケーションを作成している場合は、Employee という種類のエンティティを使用して各従業員を表現できます。エンティティ データ値は、プロパティの形で表されます。エンティティの詳細については、エンティティ、プロパティ、キーを参照してください。

エンティティの作成とプロパティの設定

Java で新しいエンティティを作成するには、そのエンティティの種類を Entity() コンストラクタの引数として指定してクラス Entity のインスタンスを作成します。必要に応じてエンティティのプロパティを入力してから、そのエンティティを DatastoreService.put() メソッドの引数として渡してデータストアに保存します。エンティティのキー名を指定するには、コンストラクタの 2 番目の引数として渡します。

次の例では、種類が Employee であるエンティティを作成し、プロパティ値を設定した後、データストアに保存します。

Java 8

Entity employee = new Entity("Employee", "asalieri");
employee.setProperty("firstName", "Antonio");
employee.setProperty("lastName", "Salieri");
employee.setProperty("hireDate", new Date());
employee.setProperty("attendedHrTraining", true);

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(employee);

Java 7

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();

Entity employee = new Entity("Employee", "asalieri");
employee.setProperty("firstName", "Antonio");
employee.setProperty("lastName", "Salieri");
employee.setProperty("hireDate", new Date());
employee.setProperty("attendedHrTraining", true);

datastore.put(employee);

キー名を指定しない場合は、Cloud Datastore によって数値 ID がエンティティのキーとして自動的に生成されます。

Java 8

Entity employee = new Entity("Employee");
// Set the entity properties.
// ...
datastore.put(employee);

Java 7

Entity employee = new Entity("Employee");
// Set the entity properties.
// ...
datastore.put(employee);

エンティティの取得

指定したキーで識別されるエンティティを取得するには、Key オブジェクトを DatastoreService.get() メソッドに渡します。

Java 8

// Key employeeKey = ...;
Entity employee = datastore.get(employeeKey);

Java 7

// Key employeeKey = ...;
Entity employee = datastore.get(employeeKey);

エンティティの更新

既存のエンティティを更新するには、Entity オブジェクトの属性を変更してから、それを DatastoreService.put() メソッドに渡します。そのオブジェクト データで既存のエンティティが上書きされます。put() を呼び出すたびにオブジェクト全体が Cloud Datastore に送信されます。

エンティティの削除

エンティティを削除するには、エンティティのキーを指定して DatastoreService.delete() メソッドを実行します。

Java 8

// Key employeeKey = ...;
datastore.delete(employeeKey);

Java 7

// Key employeeKey = ...;
datastore.delete(employeeKey);

エンティティの一括削除

多数のエンティティを削除する必要がある場合は、Cloud Dataflow を使用してエンティティを一括削除することをおすすめします。

バッチ オペレーションの使用

1 回の Cloud Datastore 呼び出しで複数のオブジェクトを操作したい場合は、バッチ オペレーションを使用できます。

バッチ呼び出しの例を次に示します。

Java 8

Entity employee1 = new Entity("Employee");
Entity employee2 = new Entity("Employee");
Entity employee3 = new Entity("Employee");
// ...

List<Entity> employees = Arrays.asList(employee1, employee2, employee3);
datastore.put(employees);

Java 7

Entity employee1 = new Entity("Employee");
Entity employee2 = new Entity("Employee");
Entity employee3 = new Entity("Employee");
// ...

List<Entity> employees = Arrays.asList(employee1, employee2, employee3);
datastore.put(employees);

このバッチ オペレーションでは、すべてのエンティティまたはキーがエンティティ グループごとにグループ化され、エンティティ グループごとにリクエストされた処理が並列に行われます。この処理では、サービス呼び出しの 1 回分のオーバーヘッドしか発生しないため、エンティティごとに個別の呼び出しを行うよりも高速になります。バッチ オペレーションで複数のエンティティ グループを対象とする場合は、サーバー側で各エンティティ グループの処理が並列に行われます。

put() または delete() バッチ呼び出しは、エンティティによって成功する場合と失敗する場合があります。呼び出しが完全に成功する、または完全に失敗することが重要な場合は、処理対象のすべてのエンティティを同じエンティティ グループに含めてトランザクションを使用してください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java の App Engine スタンダード環境