Datenobjekte in Datastore werden als Entitäten bezeichnet. Jede Entität wird für Abfragen einer bestimmten Art zugewiesen. Wenn Sie beispielsweise eine Anwendung für das Personalwesen schreiben, können Sie jeden Mitarbeiter mit einer Entität der Art Employee
darstellen. Die Entitätsdatenwerte liegen dabei in Form von Attributen vor.
Weitere Informationen zu Entitäten finden Sie im Konzeptdokument Entitäten, Attribute und Schlüssel.
Entitäten erstellen und Attribute festlegen
In Java erstellen Sie eine neue Entität, indem Sie eine Instanz der Klasse Entity
erstellen und dabei die Art der Entität als Argument für den Konstruktor Entity()
zur Verfügung stellen. Nachdem Sie gegebenenfalls Attribute für die Entität eingegeben haben, speichern Sie sie im Datenspeicher. Dazu übergeben Sie die Entität als Argument an die Methode DatastoreService.put()
. Sie können den Schlüsselnamen der Entität angeben, wenn Sie ihn als zweites Argument an den Konstruktor übergeben:
Der folgende Beispielcode erstellt eine Entität der Art Employee
, gibt ihre Attributwerte an und speichert die Entität im Datenspeicher:
Wenn Sie keinen Schlüsselnamen angeben, generiert Datastore automatisch eine numerische ID für den Schlüssel der Entität:
Entitäten abrufen
Um eine Entität mit einem bestimmten Schlüssel abzurufen, übergeben Sie das Objekt Key
an die Methode DatastoreService.get()
:
Entitäten aktualisieren
Wenn Sie eine vorhandene Entität aktualisieren möchten, ändern Sie die Attribute des Entitätsobjekts und übergeben es dann an die Methode DatastoreService.put()
. Die bestehende Entität wird mit den Objektdaten überschrieben. Bei jedem Aufruf von put()
wird das ganze Objekt an Datastore gesendet.
Entitäten löschen
Sie können eine Entität unter Angabe ihres Schlüssels mit der Methode DatastoreService.delete()
löschen:
Entitäten im Bulk löschen
Wenn Sie eine große Anzahl von Entitäten löschen müssen, empfehlen wir mit Dataflow Entitäten im Bulk zu löschen.
Batchvorgänge verwenden
Sie können die Batchvorgänge verwenden, wenn Sie mehrere Entitäten in einem einzigen Datastore-Aufruf bearbeiten möchten.
Es folgt ein Beispiel für einen Batchaufruf:
Diese Batch-Vorgänge gruppieren alle Entitäten oder Schlüssel nach Entitätengruppe und führen dann den angeforderten Vorgang für jede Entitätengruppe parallel durch. Dies ist schneller als separate Aufrufe für jede einzelne Entität, weil nur der Aufwand für einen einzigen Dienstaufruf erforderlich ist. Wenn ein Batch-Vorgang auf mehrere Entitätengruppen angewendet wird, wird die Arbeit für alle Gruppen parallel auf der Serverseite ausgeführt.
Ein Batch put()
oder delete()
ist möglicherweise nur für manche Entitäten erfolgreich.
Wenn es wichtig ist, dass der Aufruf vollständig erfolgreich verläuft oder vollständig fehlschlägt, sollten Sie eine Transaktion verwenden, bei der sich allerdings alle betroffenen Entitäten in derselben Entitätengruppe befinden müssen.