Compartilhar via


TableServiceEntity Classe

  • java.lang.Object
    • TableEntity
      • com.microsoft.azure.storage.table.TableServiceEntity

public class TableServiceEntity implements TableEntity

A TableServiceEntity classe representa o tipo de objeto base para uma entidade de tabela no serviço De armazenamento. TableServiceEntity fornece uma implementação base para a TableEntity interface que fornece métodos e que, por padrão, serializam e desserializam todas as propriedades por meio de reflexão. Uma classe de entidade de tabela pode estender essa classe e substituir os métodos e para fornecer lógica de serialização personalizada ou mais de alto desempenho.

O uso da reflexão permite que subclasses de TableServiceEntity sejam serializadas e desserializadas sem a necessidade de implementar o código de serialização por conta própria. Quando um método getter e um método setter são encontrados para um determinado nome de propriedade e tipo de dados, o método apropriado é invocado automaticamente para serializar ou desserializar os dados. Para aproveitar o código de serialização automática, suas classes de entidade de tabela devem fornecer métodos getter e setter para cada propriedade na entidade de tabela correspondente no armazenamento de tabelas do Microsoft Azure. O código de reflexão procura métodos getter e setter em pares do formulário

e

em que PropertyName é um nome de propriedade para a entidade de tabela e type é um tipo Java compatível com o tipo de dados EDM da propriedade. Consulte a tabela abaixo para obter um mapa de tipos de propriedade para seus equivalentes java. A StoreAs anotação pode ser aplicada com um atributo para especificar um nome de propriedade para reflexão nos métodos getter e setter que não seguem a convenção de nome da propriedade. Os nomes de método e o atributo de StoreAs anotações diferenciam maiúsculas de minúsculas para correspondência de nomes de propriedade com reflexão. Use a Ignore anotação para impedir que métodos sejam usados pela reflexão para serialização e desserialização automáticas. Observe que os nomes "PartitionKey", "RowKey", "Timestamp" e "Etag" são reservados e serão ignorados se definidos com a StoreAs anotação em uma subclasse.

A tabela a seguir mostra os tipos de dados de propriedade com suporte no armazenamento do Microsoft Azure e os tipos Java correspondentes quando desserializados.

Tipos de dados de propriedade com suporte no armazenamento do Microsoft Azure

Consulte o tópico MSDN Noções básicas sobre o Modelo de Dados do Serviço de Tabela para obter uma visão geral de tabelas, entidades e propriedades, conforme usado no serviço Armazenamento do Microsoft Azure.

Para obter uma visão geral dos tipos e nomes de dados primitivos do EDM disponíveis, consulte o

Seção Tipos de Dados Primitivos da Visão Geral do Protocolo OData.

Resumo do campo

Modificador e tipo Campo e descrição
String etag

Reservado para uso interno. O valor da ETag para a entidade.

String partitionKey

Reservado para uso interno. O valor da chave de partição na entidade.

String rowKey

Reservado para uso interno. O valor da chave de linha na entidade.

Date timeStamp

Reservado para uso interno. O valor do Carimbo de data/hora na entidade.

Resumo do Construtor

Construtor Description
TableServiceEntity()

Inicializa uma instância vazia TableServiceEntity .

TableServiceEntity(String partitionKey, String rowKey)

Inicializa uma nova instância da classe TableServiceEntity com a chave de partição e chave de linha especificadas.

Resumo do método

Modificador e tipo Método e descrição
String getEtag()

Obtém o valor de ETag a ser verificado para a entidade. Esse valor é usado para determinar se a entidade de tabela foi alterada desde a última leitura do armazenamento do Microsoft Azure. O cliente não pode atualizar esse valor no serviço.

String getPartitionKey()

Obtém o valor PartitionKey da entidade.

ConcurrentHashMap<Class<?>, HashMap<String, PropertyPair>> getReflectedEntityCache()

O cache de entidade refletido armazena em cache tipos de entidade conhecidos e seus respectivos dicionários de entidade refletidos quando as entidades são desserializadas e o conteúdo não inclui metadados JSON.

String getRowKey()

Obtém o valor RowKey da entidade.

Date getTimestamp()

Obtém o carimbo de data/hora da entidade. O servidor gerencia o valor de Timestamp, que não pode ser modificado.

boolean isReflectedEntityCacheDisabled()

Obtém um valor que indica se o cache de entidade refletido está desabilitado ou não. Para a maioria dos cenários, não é recomendável desabilitar o cache de entidade refletido devido ao seu efeito sobre o desempenho.

O cache de entidade refletido armazena tipos de entidade conhecidos e seus respectivos dicionários de entidade refletida. Em vez de usar reflexão em um tipo de entidade conhecido, os valores do dicionário são usados.

void readEntity(final HashMap<String, EntityProperty> properties, final OperationContext opContext)

Popula essa instância de entidade de tabela usando o mapa de nomes de propriedade para EntityProperty valores digitados por dados.

Esse método invoca readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) para preencher a instância de entidade de tabela na qual o método é chamado usando reflexão. As classes de entidade de tabela que se estendem TableServiceEntity podem aproveitar esse comportamento implementando métodos getter e setter para as propriedades específicas da entidade de tabela no armazenamento do Microsoft Azure que a classe representa.

Substitua esse método em classes que se estendem TableServiceEntity para invocar código de serialização personalizado.

void readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext)

Desserializa o mapa de propriedades da entidade de tabela para a instância de objeto especificada usando reflexão.

Esse método estático usa uma instância de objeto que representa um tipo de entidade de tabela e usa reflexão em seu tipo de classe para localizar métodos para desserializar os dados do mapa de propriedades para a instância.

Cada nome de propriedade e tipo de dados no mapa de propriedades é comparado com os métodos no tipo de classe para um par de métodos getter e setter a serem usados para serialização e desserialização. A classe é verificada em busca de métodos com nomes que correspondam ao nome da propriedade com "get" e "set" anexados ou com a StoreAs anotação definida com o nome da propriedade. Os métodos devem ter tipos de retorno ou tipos de dados de parâmetro que correspondam ao tipo de dados do valor correspondente EntityProperty . Se esse par for encontrado, os dados serão copiados para o objeto de instância invocando o método setter na instância . As propriedades que não correspondem a um par de métodos por nome e tipo de dados não são copiadas.

void setEtag(final String etag)

Define o valor de ETag a ser verificado para a entidade. Esse valor é usado para determinar se a entidade de tabela foi alterada desde a última leitura do armazenamento do Microsoft Azure. O cliente não pode atualizar esse valor no serviço.

void setPartitionKey(final String partitionKey)

Define o valor PartitionKey para a entidade.

void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

Define um booliano que representa se o cache de entidade refletido está desabilitado ou não. Para a maioria dos cenários, não é recomendável desabilitar o cache de entidade refletido devido ao seu efeito sobre o desempenho.

O cache de entidade refletido armazena tipos de entidade conhecidos e seus respectivos dicionários de entidade refletida. Em vez de usar reflexão em um tipo de entidade conhecido, os valores do dicionário são usados.

void setRowKey(final String rowKey)

Define o valor RowKey para a entidade.

void setTimestamp(final Date timeStamp)

Define o valor da entidade. Observe que a propriedade timestamp é uma propriedade somente leitura, definida apenas pelo serviço.

HashMap<String, EntityProperty> writeEntity(final OperationContext opContext)

Retorna um mapa de nomes de propriedade para EntityProperty valores digitados por dados criados serializando essa instância de entidade de tabela.

Esse método invoca writeEntityWithReflection(final Object instance) para serializar a instância de entidade de tabela na qual o método é chamado usando reflexão. As classes de entidade de tabela que se estendem TableServiceEntity podem aproveitar esse comportamento implementando métodos getter e setter para as propriedades específicas da entidade de tabela no armazenamento do Microsoft Azure que a classe representa. Observe que os nomes de propriedade "PartitionKey", "RowKey" e "Timestamp" são reservados e serão ignorados se definidos em outros métodos com a StoreAs anotação.

Substitua esse método em classes que se estendem TableServiceEntity para invocar código de serialização personalizado.

HashMap<String, EntityProperty> writeEntityWithReflection(final Object instance)

Serializa os dados de propriedade de uma instância de entidade de tabela em um mapa de propriedades usando reflexão.

Esse método estático usa uma instância de objeto que representa um tipo de entidade de tabela e usa reflexão em seu tipo de classe para localizar métodos para serializar os dados da instância no mapa de propriedades.

Cada nome de propriedade e tipo de dados no mapa de propriedades é comparado com os métodos no tipo de classe para um par de métodos getter e setter a serem usados para serialização e desserialização. A classe é verificada em busca de métodos com nomes que correspondam ao nome da propriedade com "get" e "set" anexados ou com a StoreAs anotação definida com o nome da propriedade. Os métodos devem ter tipos de retorno ou tipos de dados de parâmetro que correspondam ao tipo de dados do valor correspondente EntityProperty . Se esse par for encontrado, os dados serão copiados do objeto de instância invocando o método getter na instância . As propriedades que não têm um par de métodos com o nome e o tipo de dados correspondentes não são copiadas.

Detalhes do campo

etag

protected String etag= null

Reservado para uso interno. O valor da ETag para a entidade.

partitionKey

protected String partitionKey= null

Reservado para uso interno. O valor da chave de partição na entidade.

rowKey

protected String rowKey= null

Reservado para uso interno. O valor da chave de linha na entidade.

timeStamp

protected Date timeStamp= new Date()

Reservado para uso interno. O valor do Carimbo de data/hora na entidade.

Detalhes do construtor

TableServiceEntity

public TableServiceEntity()

Inicializa uma instância vazia TableServiceEntity .

TableServiceEntity

public TableServiceEntity(String partitionKey, String rowKey)

Inicializa uma nova instância da classe TableServiceEntity com a chave de partição e chave de linha especificadas.

Parameters:

partitionKey - Um String que representa a chave de partição do TableServiceEntity a ser inicializado.
rowKey - Um String que representa a chave de linha do TableServiceEntity a ser inicializado.

Detalhes do método

getEtag

public String getEtag()

Obtém o valor de ETag a ser verificado para a entidade. Esse valor é usado para determinar se a entidade de tabela foi alterada desde a última leitura do armazenamento do Microsoft Azure. O cliente não pode atualizar esse valor no serviço.

Overrides:

TableServiceEntity.getEtag()

Returns:

Um String que contém a ETag para a entidade.

getPartitionKey

public String getPartitionKey()

Obtém o valor PartitionKey da entidade.

Overrides:

TableServiceEntity.getPartitionKey()

Returns:

Um String que contém o valor PartitionKey para a entidade.

getReflectedEntityCache

protected static ConcurrentHashMap, HashMap> getReflectedEntityCache()

O cache de entidade refletido armazena em cache tipos de entidade conhecidos e seus respectivos dicionários de entidade refletidos quando as entidades são desserializadas e o conteúdo não inclui metadados JSON.

Returns:

O ConcurrentHashMap<Class<?>, HashMap<String, PropertyPair>> que representa os tipos de entidade conhecidos e seus dicionários de entidade refletidos

getRowKey

public String getRowKey()

Obtém o valor RowKey da entidade.

Overrides:

TableServiceEntity.getRowKey()

Returns:

Um String que contém o valor RowKey para a entidade.

getTimestamp

public Date getTimestamp()

Obtém o carimbo de data/hora da entidade. O servidor gerencia o valor de Timestamp, que não pode ser modificado.

Overrides:

TableServiceEntity.getTimestamp()

Returns:

Um java.util.Date objeto que representa o valor de carimbo de data/hora da entidade.

isReflectedEntityCacheDisabled

public static boolean isReflectedEntityCacheDisabled()

Obtém um valor que indica se o cache de entidade refletido está desabilitado ou não. Para a maioria dos cenários, não é recomendável desabilitar o cache de entidade refletido devido ao seu efeito sobre o desempenho.

O cache de entidade refletido armazena tipos de entidade conhecidos e seus respectivos dicionários de entidade refletida. Em vez de usar reflexão em um tipo de entidade conhecido, os valores do dicionário são usados.

Returns:

true se o cache de entidade refletido estiver desabilitado; caso contrário, false.

readEntity

public void readEntity(final HashMap properties, final OperationContext opContext)

Popula essa instância de entidade de tabela usando o mapa de nomes de propriedade para EntityProperty valores digitados por dados.

Esse método invoca readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) para preencher a instância de entidade de tabela na qual o método é chamado usando reflexão. As classes de entidade de tabela que se estendem TableServiceEntity podem aproveitar esse comportamento implementando métodos getter e setter para as propriedades específicas da entidade de tabela no armazenamento do Microsoft Azure que a classe representa.

Substitua esse método em classes que se estendem TableServiceEntity para invocar código de serialização personalizado.

Overrides:

TableServiceEntity.readEntity(final HashMap<String, EntityProperty> properties, final OperationContext opContext)

Parameters:

properties - O java.util.HashMap de nomes de String propriedade para EntityProperty valores de dados a serem desserializados e armazenados nesta instância de entidade de tabela.
opContext - Um OperationContext objeto usado para acompanhar a execução da operação.

Throws:

StorageException - se ocorrer um erro durante a desserialização.

readEntityWithReflection

public static void readEntityWithReflection(final Object instance, final HashMap properties, final OperationContext opContext)

Desserializa o mapa de propriedades da entidade de tabela para a instância de objeto especificada usando reflexão.

Esse método estático usa uma instância de objeto que representa um tipo de entidade de tabela e usa reflexão em seu tipo de classe para localizar métodos para desserializar os dados do mapa de propriedades para a instância.

Cada nome de propriedade e tipo de dados no mapa de propriedades é comparado com os métodos no tipo de classe para um par de métodos getter e setter a serem usados para serialização e desserialização. A classe é verificada em busca de métodos com nomes que correspondam ao nome da propriedade com "get" e "set" anexados ou com a StoreAs anotação definida com o nome da propriedade. Os métodos devem ter tipos de retorno ou tipos de dados de parâmetro que correspondam ao tipo de dados do valor correspondente EntityProperty . Se esse par for encontrado, os dados serão copiados para o objeto de instância invocando o método setter na instância . As propriedades que não correspondem a um par de métodos por nome e tipo de dados não são copiadas.

Parameters:

instance - Uma Object referência a uma instância de uma classe que implementa TableEntity para desserializar os dados da entidade de tabela.
properties - Um java.util.HashMap objeto que mapeia String nomes de propriedade para EntityProperty objetos que contêm valores de dados digitados para desserializar no objeto de parâmetro de instância.
opContext - Um objeto OperationContext que representa o contexto da operação atual.

Throws:

IllegalArgumentException - se a resposta da entidade de tabela recebida for inválida ou formatada incorretamente.
IllegalAccessException - se a entidade de tabela gerou uma exceção durante a desserialização.
InvocationTargetException - se um método invocado no parâmetro de instância tiver gerado uma exceção durante a desserialização.

setEtag

public void setEtag(final String etag)

Define o valor de ETag a ser verificado para a entidade. Esse valor é usado para determinar se a entidade de tabela foi alterada desde a última leitura do armazenamento do Microsoft Azure. O cliente não pode atualizar esse valor no serviço.

Overrides:

TableServiceEntity.setEtag(final String etag)

Parameters:

etag - Um String que contém a ETag para a entidade.

setPartitionKey

public void setPartitionKey(final String partitionKey)

Define o valor PartitionKey para a entidade.

Overrides:

TableServiceEntity.setPartitionKey(final String partitionKey)

Parameters:

partitionKey - Um String que contém o valor PartitionKey para a entidade.

setReflectedEntityCacheDisabled

public static void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

Define um booliano que representa se o cache de entidade refletido está desabilitado ou não. Para a maioria dos cenários, não é recomendável desabilitar o cache de entidade refletido devido ao seu efeito sobre o desempenho.

O cache de entidade refletido armazena tipos de entidade conhecidos e seus respectivos dicionários de entidade refletida. Em vez de usar reflexão em um tipo de entidade conhecido, os valores do dicionário são usados.

Parameters:

disableReflectedEntityCache -

true para desabilitar o cache de entidade refletido; caso contrário, false.

setRowKey

public void setRowKey(final String rowKey)

Define o valor RowKey para a entidade.

Overrides:

TableServiceEntity.setRowKey(final String rowKey)

Parameters:

rowKey - Um String que contém o valor RowKey para a entidade.

setTimestamp

public void setTimestamp(final Date timeStamp)

Define o valor da entidade. Observe que a propriedade timestamp é uma propriedade somente leitura, definida apenas pelo serviço.

Overrides:

TableServiceEntity.setTimestamp(final Date timeStamp)

Parameters:

timeStamp - Um java.util.Date que contém o timeStamp valor da entidade.

writeEntity

public HashMap writeEntity(final OperationContext opContext)

Retorna um mapa de nomes de propriedade para EntityProperty valores digitados por dados criados serializando essa instância de entidade de tabela.

Esse método invoca writeEntityWithReflection(final Object instance) para serializar a instância de entidade de tabela na qual o método é chamado usando reflexão. As classes de entidade de tabela que se estendem TableServiceEntity podem aproveitar esse comportamento implementando métodos getter e setter para as propriedades específicas da entidade de tabela no armazenamento do Microsoft Azure que a classe representa. Observe que os nomes de propriedade "PartitionKey", "RowKey" e "Timestamp" são reservados e serão ignorados se definidos em outros métodos com a StoreAs anotação.

Substitua esse método em classes que se estendem TableServiceEntity para invocar código de serialização personalizado.

Overrides:

TableServiceEntity.writeEntity(final OperationContext opContext)

Parameters:

opContext - Um OperationContext objeto usado para acompanhar a execução da operação.

Returns:

Um java.util.HashMap de nomes de String propriedade para EntityProperty valores tipados de dados que representam as propriedades serializadas dessa instância de entidade de tabela.

Throws:

StorageException - se ocorrer um erro durante a serialização.

writeEntityWithReflection

public static HashMap writeEntityWithReflection(final Object instance)

Serializa os dados de propriedade de uma instância de entidade de tabela em um mapa de propriedades usando reflexão.

Esse método estático usa uma instância de objeto que representa um tipo de entidade de tabela e usa reflexão em seu tipo de classe para localizar métodos para serializar os dados da instância no mapa de propriedades.

Cada nome de propriedade e tipo de dados no mapa de propriedades é comparado com os métodos no tipo de classe para um par de métodos getter e setter a serem usados para serialização e desserialização. A classe é verificada em busca de métodos com nomes que correspondam ao nome da propriedade com "get" e "set" anexados ou com a StoreAs anotação definida com o nome da propriedade. Os métodos devem ter tipos de retorno ou tipos de dados de parâmetro que correspondam ao tipo de dados do valor correspondente EntityProperty . Se esse par for encontrado, os dados serão copiados do objeto de instância invocando o método getter na instância . As propriedades que não têm um par de métodos com o nome e o tipo de dados correspondentes não são copiadas.

Parameters:

instance - Uma Object referência a uma instância de uma classe que implementa TableEntity para serializar os dados da entidade de tabela.

Returns:

Um java.util.HashMap objeto que mapeia String nomes de propriedade para EntityProperty objetos que contêm valores de dados tipados serializados do objeto de parâmetro de instância.

Throws:

IllegalArgumentException - se a entidade de tabela for inválida ou formatada incorretamente.
IllegalAccessException - se a entidade de tabela tiver gerada uma exceção durante a serialização.
InvocationTargetException - se um método invocado no parâmetro de instância tiver gerado uma exceção durante a serialização.

Aplica-se a