Crea, recupera, actualiza y borra entidades

Los objetos de datos en Datastore se denominan entidades y cada una de ellas se clasifica en un tipo con el propósito de realizar consultas. Por ejemplo, si escribes una aplicación de recursos humanos, puedes representar a cada empleado con una entidad del tipo Employee. Ten en cuenta que los valores de datos de la entidad tienen el formato de propiedades. Para obtener más información sobre las entidades, consulta el documento de concepto Entidades, propiedades y claves.

Crea entidades y configura propiedades

En Java, se crea una entidad nueva mediante la construcción de una instancia de la clase Entity, lo que proporciona el tipo de entidad como un argumento al constructor Entity(). Después de propagar las propiedades de la entidad, si es necesario, guárdala en el almacén de datos como un argumento para el método DatastoreService.put(). A fin de especificar el nombre clave de la entidad, pásala como segundo argumento al constructor.

En el siguiente ejemplo, se crea una entidad de tipo Employee, se propagan sus valores de propiedad y se la guarda en Datastore:

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

Ten en cuenta que, si no proporcionas un nombre de clave, Datastore genera de forma automática un ID numérico para la clave de la entidad:

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

Recupera entidades

Para recuperar una entidad identificada por una clave determinada, pasa el objeto Key al método DatastoreService.get():

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

Actualiza entidades

Para actualizar una entidad existente, modifica los atributos del objeto Entity y, luego, pásalo al método DatastoreService.put(). Los datos del objeto reemplazan la entidad existente. El objeto completo se envía a Datastore con cada llamada 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);

Borra entidades

Dada la clave de una entidad, puedes borrar la entidad con el método DatastoreService.delete():

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

Borrar entidades de manera masiva

Si necesitas borrar una gran cantidad de entidades, te recomendamos usar Dataflow para borrar entidades de manera masiva.

Usa operaciones por lotes

Puedes usar las operaciones por lotes si deseas operar en varias entidades en una sola llamada a Datastore.

Este es un ejemplo de una llamada por lotes:

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

Estas operaciones por lotes agrupan a todas las entidades o claves por grupo de entidades y luego realizan la operación solicitada en cada grupo de entidades de forma paralela, lo cual es más rápido que realizar llamadas separadas para cada entidad individual porque estas generan sobrecarga solo para una llamada de servicio. Si el lote usa varios grupos de entidades, el trabajo de todos los grupos se realiza en paralelo en el servidor.

Una llamada por lotes put() o delete() puede realizarse de forma correcta en algunas entidades, pero no en otras. Si es importante que la llamada se realice de forma correcta o falle por completo, usa una transacción con todas las entidades afectadas en el mismo grupo de entidades.