Creazione, recupero, aggiornamento ed eliminazione delle entità

Gli oggetti di dati in Datastore sono noti come entità, ognuno dei quali è classificato di un determinato kind ai fini delle query. Per 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 dati dell'entità i valori 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, la salvi al datastore passandolo come argomento DatastoreService.put() . Puoi specificare il nome della chiave dell'entità passandolo come secondo al costruttore.

L'esempio seguente crea un'entità di tipo Employee, compila i valori delle proprietà e la salva nel data store:

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);

Tieni presente che se non fornisci un nome della chiave, Datastore genera automaticamente un ID numerico per la chiave dell'entità:

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

Recupero delle entità

Per recuperare un'entità identificata da una determinata chiave, passa Key al metodo DatastoreService.get():

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

Aggiornamento delle entità

Per aggiornare un'entità esistente, modifica gli attributi dell'oggetto Entity, quindi passalo al metodo DatastoreService.put(). I dati dell'oggetto sovrascrivono l'entità esistente. L'intero oggetto viene inviato a Datastore con ogni chiamata a put().

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);

Eliminazione di entità

Data la chiave di un'entità, puoi eliminare l'entità con il metodo DatastoreService.delete():

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

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ù in una singola chiamata a Datastore.

Ecco un esempio di chiamata batch:

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);

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 svolto in parallelo sul lato server.

Una chiamata batch put() o delete() potrebbe riuscire per alcune entità, ma non per altre. Se è importante che la chiamata abbia esito positivo o negativo del tutto, utilizza una transazione con tutte le nello stesso gruppo di entità.