Os objetos de dados no Datastore são conhecidos como entidades, cada uma das quais é categorizada
num tipo específico para fins de consultas. Por exemplo, se estiver a escrever uma aplicação de recursos humanos, pode representar cada funcionário com uma entidade do tipo Employee
. Tenha em atenção que os valores dos dados das entidades estão sob a forma de propriedades.
Para mais informações sobre entidades, consulte o documento conceptual Entidades, propriedades e chaves.
Criar entidades e definir propriedades
Em Java, cria uma nova entidade construindo uma instância da classe Entity
, fornecendo o tipo da entidade como um argumento ao construtor Entity()
. Depois de preencher as propriedades da entidade, se necessário, guarde-a
no arquivo de dados transmitindo-a como um argumento ao método
DatastoreService.put()
. Pode especificar o nome da chave da entidade transmitindo-o como o segundo argumento ao construtor.
O exemplo seguinte cria uma entidade do tipo Employee
, preenche os respetivos valores de propriedades e guarda-a na loja de dados:
Tenha em atenção que, se não fornecer um nome de chave, o Datastore gera automaticamente um ID numérico para a chave da entidade:
A obter entidades
Para obter uma entidade identificada por uma determinada chave, transmita o objeto Key
ao método DatastoreService.get()
:
A atualizar entidades
Para atualizar uma entidade existente, modifique os atributos do objeto Entity e, em seguida, transmita-o para o método DatastoreService.put()
. Os dados do objeto substituem a entidade existente. O objeto completo é enviado para o Datastore com cada chamada para put()
.
Eliminar entidades
Dada a chave de uma entidade, pode eliminar a entidade com o método DatastoreService.delete()
:
Eliminar entidades em massa
Se precisar de eliminar um grande número de entidades, recomendamos que use o Dataflow para eliminar entidades em massa.
Usar operações em lote
Pode usar as operações em lote se quiser operar em várias entidades numa única chamada do Datastore.
Segue-se um exemplo de uma chamada em lote:
Estas operações em lote agrupam todas as entidades ou chaves por grupo de entidades e, em seguida, executam a operação pedida em cada grupo de entidades em paralelo, o que é mais rápido do que fazer chamadas separadas para cada entidade individual porque incorrem na sobrecarga de apenas uma chamada de serviço. Se o lote usar vários grupos de entidades, o trabalho para todos os grupos é feito em paralelo no lado do servidor.
Uma chamada em lote put()
ou delete()
pode ter êxito para algumas entidades, mas não para outras.
Se for importante que a chamada seja totalmente bem-sucedida ou totalmente falhada, use uma transação com todas as entidades afetadas no mesmo grupo de entidades.