Gli oggetti dati in Datastore sono noti come entità, ognuna delle quali è classificata come un determinato tipo ai fini delle query. Ad esempio, se stai scrivendo un'applicazione per le risorse umane, potresti rappresentare ogni dipendente con un'entità di tipo Employee
. Tieni presente che i valori dei dati delle entità sono sotto forma di proprietà.
Per saperne di più sulle entità, consulta il documento sui concetti Entità, proprietà e chiavi.
Creazione di entità e impostazione di proprietà
In Java, crei una nuova entità costruendo un'istanza della classe
Entity
, fornendo il tipo dell'entità come
argomento al costruttore Entity()
. Dopo aver compilato le proprietà dell'entità, se necessario, salvala nel datastore passandola come argomento al metodo DatastoreService.put()
. Puoi specificare il nome della chiave dell'entità passandolo come secondo
argomento al costruttore.
L'esempio seguente crea un'entità di tipo Employee
, compila i valori delle proprietà e la salva nel datastore:
Tieni presente che se non fornisci un nome della chiave, Datastore genera automaticamente un ID numerico per la chiave dell'entità:
Recupero delle entità
Per recuperare un'entità identificata da una determinata chiave, passa l'oggetto Key
al metodo DatastoreService.get()
:
Aggiornamento delle entità
Per aggiornare un'entità esistente, modifica gli attributi dell'oggetto Entity e poi passalo al metodo DatastoreService.put()
. I dati dell'oggetto sovrascrivono l'entità esistente. L'intero oggetto viene inviato a Datastore a ogni chiamata a put()
.
Eliminazione di entità
Data la chiave di un'entità, puoi eliminarla con il metodo DatastoreService.delete()
:
Eliminazione di entità in blocco
Se devi eliminare un numero elevato di entità, ti consigliamo di utilizzare Dataflow per eliminare le entità in blocco.
Utilizzare le operazioni batch
Puoi utilizzare le operazioni batch se vuoi operare su più entità in una singola chiamata a Datastore.
Ecco un esempio di chiamata batch:
Queste operazioni batch raggruppano tutte le entità o le chiavi per gruppo di entità e poi eseguono l'operazione richiesta su ogni gruppo di entità in parallelo, il che è più veloce rispetto a effettuare chiamate separate per ogni singola entità perché comporta il sovraccarico di una sola chiamata di servizio. Se il batch utilizza più gruppi di entità, il lavoro per tutti i gruppi viene eseguito in parallelo lato server.
Una chiamata batch put()
o delete()
potrebbe riuscire per alcune entità, ma non per altre.
Se è importante che la chiamata vada a buon fine o non vada a buon fine, utilizza
una transazione con tutte le entità interessate nello stesso gruppo di entità.