Los objetos de datos de Datastore se denominan entidades, y cada uno de ellos se clasifica en un tipo concreto para las consultas. Por ejemplo, si estás escribiendo una aplicación de recursos humanos, puedes representar a cada empleado con una entidad de tipo Employee
. Ten en cuenta que los valores de los datos de la entidad tienen el formato de propiedades.
Para obtener más información sobre las entidades, consulta el documento de conceptos Entidades, propiedades y claves.
Crear entidades y definir propiedades
En Java, se crea una entidad construyendo una instancia de la clase Entity
y proporcionando el tipo de entidad como argumento al constructor Entity()
. Después de rellenar las propiedades de la entidad, si es necesario, guárdala en el almacén de datos pasándola como argumento al método DatastoreService.put()
. Puede especificar el nombre de la clave de la entidad pasándolo como segundo argumento al constructor.
En el siguiente ejemplo se crea una entidad de tipo Employee
, se rellenan los valores de sus propiedades y se guarda en el almacén de datos:
Ten en cuenta que, si no proporcionas un nombre de clave, Datastore generará automáticamente un ID numérico para la clave de la entidad:
Obtener entidades
Para obtener una entidad identificada por una clave determinada, pasa el objeto Key
al método DatastoreService.get()
:
Actualizar entidades
Para actualizar una entidad, modifica los atributos del objeto Entity y, a continuación, pásalo al método DatastoreService.put()
. Los datos del objeto sobrescriben la entidad existente. El objeto completo se envía a Datastore con cada llamada a put()
.
Eliminar entidades
Si tienes la clave de una entidad, puedes eliminarla con el método DatastoreService.delete()
:
Eliminar entidades en bloque
Si necesitas eliminar un gran número de entidades, te recomendamos que utilices Dataflow para eliminar entidades en bloque.
Usar operaciones en lote
Puedes usar las operaciones por lotes si quieres operar con varias entidades en una sola llamada a Datastore.
Aquí tienes un ejemplo de una llamada por lotes:
Estas operaciones por lotes agrupan todas las entidades o claves por grupo de entidades y, a continuación, realizan la operación solicitada en cada grupo de entidades en paralelo, lo que es más rápido que hacer llamadas independientes para cada entidad, ya que solo incurren en la sobrecarga de una llamada de servicio. Si el lote usa varios grupos de entidades, el trabajo de todos los grupos se realiza en paralelo en el lado del servidor.
Es posible que una llamada por lotes put()
o delete()
se realice correctamente para algunas entidades, pero no para otras.
Si es importante que la llamada se complete o falle por completo, usa una transacción con todas las entidades afectadas en el mismo grupo de entidades.