Partager via


TableServiceEntity Classe

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

public class TableServiceEntity implements TableEntity

La TableServiceEntity classe représente le type d’objet de base pour une entité de table dans le service de stockage. TableServiceEntity fournit une implémentation de base pour l’interface TableEntity qui fournit des méthodes et qui, par défaut, sérialisent et désérialisent toutes les propriétés par réflexion. Une classe d’entité table peut étendre cette classe et remplacer les méthodes et pour fournir une logique de sérialisation personnalisée ou plus performante.

L’utilisation de la réflexion permet de sérialiser et désérialiser les sous-classes de TableServiceEntity sans avoir à implémenter le code de sérialisation eux-mêmes. Quand une méthode getter et une méthode setter sont toutes deux trouvées pour un nom de propriété et un type de données donnés, la méthode appropriée est appelée automatiquement pour sérialiser ou désérialiser les données. Pour tirer parti du code de sérialisation automatique, vos classes d’entités de table doivent fournir des méthodes getter et setter pour chaque propriété de l’entité de table correspondante dans le stockage de tables Microsoft Azure. Le code de réflexion recherche les méthodes getter et setter par paires du formulaire

et

PropertyName est un nom de propriété pour l’entité table, et type est un type Java compatible avec le type de données EDM de la propriété. Consultez le tableau ci-dessous pour obtenir un mappage des types de propriétés avec leurs équivalents Java. L’annotation StoreAs peut être appliquée avec un attribut pour spécifier un nom de propriété pour la réflexion sur les méthodes getter et setter qui ne respectent pas la convention de nom de propriété. Les noms de méthode et l’attribut des StoreAs annotations respectent la casse pour la correspondance des noms de propriétés avec la réflexion. Utilisez l’annotation Ignore pour empêcher l’utilisation de méthodes par la réflexion pour la sérialisation et la désérialisation automatiques. Notez que les noms « PartitionKey », « RowKey », « Timestamp » et « Etag » sont réservés et sont ignorés s’ils sont définis avec l’annotation StoreAs dans une sous-classe.

Le tableau suivant présente les types de données de propriété pris en charge dans le stockage Microsoft Azure et les types Java correspondants lors de la désérialisation.

Types de données de propriété pris en charge dans le stockage Microsoft Azure

Consultez la rubrique MSDN Présentation du modèle de données du service de table pour obtenir une vue d’ensemble des tables, entités et propriétés utilisées dans le service Stockage Microsoft Azure.

Pour obtenir une vue d’ensemble des types de données primitifs EDM disponibles et des noms, consultez

Section Types de données primitifs de la vue d’ensemble du protocole OData.

Récapitulatif du champ

Modificateur et type Champ et description
String etag

Réservé à un usage interne. Valeur de l’ETag pour l’entité.

String partitionKey

Réservé à un usage interne. Valeur de la clé de partition dans l’entité.

String rowKey

Réservé à un usage interne. Valeur de la clé de ligne dans l’entité.

Date timeStamp

Réservé à un usage interne. Valeur de l’horodatage dans l’entité.

Récapitulatif du constructeur

Constructeur Description
TableServiceEntity()

Initialise un instance vide TableServiceEntity .

TableServiceEntity(String partitionKey, String rowKey)

Initialise une nouvelle instance de la classe TableServiceEntity avec la clé de partition et la clé de ligne spécifiées.

Résumé de la méthode

Modificateur et type Méthode et description
String getEtag()

Obtient la valeur ETag à vérifier pour l’entité. Cette valeur est utilisée pour déterminer si l’entité de table a changé depuis sa dernière lecture à partir du stockage Microsoft Azure. Le client ne peut pas mettre à jour cette valeur sur le service.

String getPartitionKey()

Obtient la valeur PartitionKey de l’entité.

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

Le cache d’entités réfléchi met en cache les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs lorsque les entités sont désérialisées et que la charge utile n’inclut pas de métadonnées JSON.

String getRowKey()

Obtient la valeur RowKey de l’entité.

Date getTimestamp()

Obtient l’horodatage de l’entité. Le serveur gère la valeur de Timestamp, qui ne peut pas être modifiée.

boolean isReflectedEntityCacheDisabled()

Obtient une valeur indiquant si le cache d’entité reflété est désactivé ou non. Dans la plupart des scénarios, la désactivation du cache d’entités reflété n’est pas recommandée en raison de son effet sur les performances.

Le cache d’entités reflété stocke les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs. Au lieu d’utiliser la réflexion sur un type d’entité connu, les valeurs du dictionnaire sont utilisées à la place.

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

Remplit cette entité de table instance à l’aide du mappage des noms de propriétés aux EntityProperty valeurs typées de données.

Cette méthode appelle readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) pour remplir l’entité de table instance la méthode est appelée à l’aide de la réflexion. Les classes d’entités de table qui s’étendent TableServiceEntity peuvent tirer parti de ce comportement en implémentant des méthodes getter et setter pour les propriétés particulières de l’entité de table dans le stockage Microsoft Azure que la classe représente.

Remplacez cette méthode dans les classes qui s’étendent TableServiceEntity pour appeler du code de sérialisation personnalisé.

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

Désérialise le mappage de propriété d’entité de table dans l’objet spécifié instance à l’aide de la réflexion.

Cette méthode statique prend un objet instance qui représente un type d’entité table et utilise la réflexion sur son type de classe pour rechercher des méthodes permettant de désérialiser les données du mappage de propriétés dans le instance.

Chaque nom de propriété et type de données dans le mappage de propriétés est comparé aux méthodes du type de classe pour une paire de méthodes getter et setter à utiliser pour la sérialisation et la désérialisation. La classe est analysée à la recherche de méthodes dont les noms correspondent au nom de propriété avec « get » et « set » ajoutés, ou avec le StoreAs jeu d’annotations avec le nom de la propriété. Les méthodes doivent avoir des types de retour ou des types de données de paramètre qui correspondent au type de données de la valeur correspondante EntityProperty . Si une telle paire est trouvée, les données sont copiées dans l’objet instance en appelant la méthode setter sur le instance. Les propriétés qui ne correspondent pas à une paire de méthodes par nom et par type de données ne sont pas copiées.

void setEtag(final String etag)

Définit la valeur ETag pour vérifier pour l’entité. Cette valeur est utilisée pour déterminer si l’entité de table a changé depuis sa dernière lecture à partir du stockage Microsoft Azure. Le client ne peut pas mettre à jour cette valeur sur le service.

void setPartitionKey(final String partitionKey)

Définit la valeur PartitionKey de l’entité.

void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

Définit une valeur booléenne indiquant si le cache d’entité réfléchi est désactivé ou non. Pour la plupart des scénarios, la désactivation du cache d’entités reflétée n’est pas recommandée en raison de son effet sur les performances.

Le cache d’entités répercutée stocke les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs. Au lieu d’utiliser la réflexion sur un type d’entité connu, les valeurs du dictionnaire sont utilisées à la place.

void setRowKey(final String rowKey)

Définit la valeur RowKey de l’entité.

void setTimestamp(final Date timeStamp)

Définit la valeur de l’entité. Notez que la propriété timestamp est une propriété en lecture seule, définie par le service uniquement.

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

Retourne un mappage des noms de propriétés aux EntityProperty valeurs typées de données créées en sérialisant cette entité de table instance.

Cette méthode appelle writeEntityWithReflection(final Object instance) pour sérialiser l’entité de table instance la méthode est appelée à l’aide de la réflexion. Les classes d’entités de table qui s’étendent TableServiceEntity peuvent tirer parti de ce comportement en implémentant des méthodes getter et setter pour les propriétés particulières de l’entité de table dans le stockage Microsoft Azure que la classe représente. Notez que les noms de propriété « PartitionKey », « RowKey » et « Timestamp » sont réservés et seront ignorés s’ils sont définis sur d’autres méthodes avec l’annotation StoreAs .

Remplacez cette méthode dans les classes qui s’étendent TableServiceEntity pour appeler du code de sérialisation personnalisé.

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

Sérialise les données de propriété d’une entité de table instance dans une carte de propriétés à l’aide de la réflexion.

Cette méthode statique prend un objet instance qui représente un type d’entité table et utilise la réflexion sur son type de classe pour rechercher des méthodes permettant de sérialiser les données du instance dans le mappage de propriétés.

Chaque nom de propriété et type de données dans le mappage de propriétés est comparé aux méthodes du type de classe pour une paire de méthodes getter et setter à utiliser pour la sérialisation et la désérialisation. La classe est analysée à la recherche de méthodes dont les noms correspondent au nom de propriété avec « get » et « set » ajoutés, ou avec le StoreAs jeu d’annotations avec le nom de la propriété. Les méthodes doivent avoir des types de retour ou des types de données de paramètre qui correspondent au type de données de la valeur correspondante EntityProperty . Si une telle paire est trouvée, les données sont copiées à partir de l’objet instance en appelant la méthode getter sur le instance. Les propriétés qui n’ont pas de paire de méthode avec le nom et le type de données correspondants ne sont pas copiées.

Détails du champ

etag

protected String etag= null

Réservé à un usage interne. Valeur de l’ETag pour l’entité.

partitionKey

protected String partitionKey= null

Réservé à un usage interne. Valeur de la clé de partition dans l’entité.

rowKey

protected String rowKey= null

Réservé à un usage interne. Valeur de la clé de ligne dans l’entité.

timeStamp

protected Date timeStamp= new Date()

Réservé à un usage interne. Valeur de l’horodatage dans l’entité.

Détails du constructeur

TableServiceEntity

public TableServiceEntity()

Initialise un instance vide TableServiceEntity .

TableServiceEntity

public TableServiceEntity(String partitionKey, String rowKey)

Initialise une nouvelle instance de la classe TableServiceEntity avec la clé de partition et la clé de ligne spécifiées.

Parameters:

partitionKey - String qui représente la clé de partition du TableServiceEntity à initialiser.
rowKey - String qui représente la clé de ligne du TableServiceEntity à initialiser.

Détails de la méthode

getEtag

public String getEtag()

Obtient la valeur ETag à vérifier pour l’entité. Cette valeur est utilisée pour déterminer si l’entité de table a changé depuis sa dernière lecture à partir du stockage Microsoft Azure. Le client ne peut pas mettre à jour cette valeur sur le service.

Overrides:

TableServiceEntity.getEtag()

Returns:

String contenant l’ETag de l’entité.

getPartitionKey

public String getPartitionKey()

Obtient la valeur PartitionKey de l’entité.

Overrides:

TableServiceEntity.getPartitionKey()

Returns:

String contenant la valeur PartitionKey de l’entité.

getReflectedEntityCache

protected static ConcurrentHashMap, HashMap> getReflectedEntityCache()

Le cache d’entités réfléchi met en cache les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs lorsque les entités sont désérialisées et que la charge utile n’inclut pas de métadonnées JSON.

Returns:

ConcurrentHashMap<Class<?>, HashMap<String, PropertyPair>> représentant les types d’entités connus et leurs dictionnaires d’entités reflétés

getRowKey

public String getRowKey()

Obtient la valeur RowKey de l’entité.

Overrides:

TableServiceEntity.getRowKey()

Returns:

String contenant la valeur RowKey de l’entité .

getTimestamp

public Date getTimestamp()

Obtient l’horodatage de l’entité. Le serveur gère la valeur de Timestamp, qui ne peut pas être modifiée.

Overrides:

TableServiceEntity.getTimestamp()

Returns:

Objet java.util.Date qui représente la valeur Timestamp de l’entité.

isReflectedEntityCacheDisabled

public static boolean isReflectedEntityCacheDisabled()

Obtient une valeur indiquant si le cache d’entité reflété est désactivé ou non. Dans la plupart des scénarios, la désactivation du cache d’entités reflété n’est pas recommandée en raison de son effet sur les performances.

Le cache d’entités reflété stocke les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs. Au lieu d’utiliser la réflexion sur un type d’entité connu, les valeurs du dictionnaire sont utilisées à la place.

Returns:

true si le cache d’entités reflété est désactivé ; sinon, false.

readEntity

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

Remplit cette entité de table instance à l’aide du mappage des noms de propriétés aux EntityProperty valeurs typées de données.

Cette méthode appelle readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) pour remplir l’entité de table instance la méthode est appelée à l’aide de la réflexion. Les classes d’entités de table qui s’étendent TableServiceEntity peuvent tirer parti de ce comportement en implémentant des méthodes getter et setter pour les propriétés particulières de l’entité de table dans le stockage Microsoft Azure que la classe représente.

Remplacez cette méthode dans les classes qui s’étendent TableServiceEntity pour appeler du code de sérialisation personnalisé.

Overrides:

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

Parameters:

properties - Des java.util.HashMap noms de String propriétés aux valeurs de données à EntityProperty désérialiser et à stocker dans cette entité table instance.
opContext - Objet OperationContext utilisé pour suivre l’exécution de l’opération.

Throws:

StorageException - si une erreur se produit pendant la désérialisation.

readEntityWithReflection

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

Désérialise le mappage de propriété d’entité de table dans l’objet spécifié instance à l’aide de la réflexion.

Cette méthode statique prend un objet instance qui représente un type d’entité table et utilise la réflexion sur son type de classe pour rechercher des méthodes permettant de désérialiser les données du mappage de propriétés dans le instance.

Chaque nom de propriété et type de données dans le mappage de propriétés est comparé aux méthodes du type de classe pour une paire de méthodes getter et setter à utiliser pour la sérialisation et la désérialisation. La classe est analysée à la recherche de méthodes dont les noms correspondent au nom de propriété avec « get » et « set » ajoutés, ou avec le StoreAs jeu d’annotations avec le nom de la propriété. Les méthodes doivent avoir des types de retour ou des types de données de paramètre qui correspondent au type de données de la valeur correspondante EntityProperty . Si une telle paire est trouvée, les données sont copiées dans l’objet instance en appelant la méthode setter sur le instance. Les propriétés qui ne correspondent pas à une paire de méthodes par nom et par type de données ne sont pas copiées.

Parameters:

instance - Référence Object à un instance d’une classe implémentant TableEntity pour désérialiser les données d’entité de table dans.
properties - Objet java.util.HashMap qui mappe les String noms de propriétés à EntityProperty des objets contenant des valeurs de données typées à désérialiser dans l’objet de paramètre instance.
opContext - Objet OperationContext qui représente le contexte de l'opération actuelle.

Throws:

IllegalArgumentException - si la réponse d’entité de table reçue n’est pas valide ou n’est pas correctement mise en forme.
IllegalAccessException - si l’entité de table a levé une exception pendant la désérialisation.
InvocationTargetException - si une méthode appelée sur le paramètre instance a levé une exception pendant la désérialisation.

setEtag

public void setEtag(final String etag)

Définit la valeur ETag pour vérifier pour l’entité. Cette valeur est utilisée pour déterminer si l’entité de table a changé depuis sa dernière lecture à partir du stockage Microsoft Azure. Le client ne peut pas mettre à jour cette valeur sur le service.

Overrides:

TableServiceEntity.setEtag(final String etag)

Parameters:

etag - String contenant l’ETag pour l’entité.

setPartitionKey

public void setPartitionKey(final String partitionKey)

Définit la valeur PartitionKey de l’entité.

Overrides:

TableServiceEntity.setPartitionKey(final String partitionKey)

Parameters:

partitionKey - String contenant la valeur PartitionKey de l’entité.

setReflectedEntityCacheDisabled

public static void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

Définit une valeur booléenne indiquant si le cache d’entité réfléchi est désactivé ou non. Pour la plupart des scénarios, la désactivation du cache d’entités reflétée n’est pas recommandée en raison de son effet sur les performances.

Le cache d’entités répercutée stocke les types d’entités connus et leurs dictionnaires d’entités reflétés respectifs. Au lieu d’utiliser la réflexion sur un type d’entité connu, les valeurs du dictionnaire sont utilisées à la place.

Parameters:

disableReflectedEntityCache -

true pour désactiver le cache d’entité répercutée ; sinon, false.

setRowKey

public void setRowKey(final String rowKey)

Définit la valeur RowKey de l’entité.

Overrides:

TableServiceEntity.setRowKey(final String rowKey)

Parameters:

rowKey - String contenant la valeur RowKey de l’entité.

setTimestamp

public void setTimestamp(final Date timeStamp)

Définit la valeur de l’entité. Notez que la propriété timestamp est une propriété en lecture seule, définie par le service uniquement.

Overrides:

TableServiceEntity.setTimestamp(final Date timeStamp)

Parameters:

timeStamp - java.util.Date contenant la timeStamp valeur de l’entité .

writeEntity

public HashMap writeEntity(final OperationContext opContext)

Retourne un mappage des noms de propriétés aux EntityProperty valeurs typées de données créées en sérialisant cette entité de table instance.

Cette méthode appelle writeEntityWithReflection(final Object instance) pour sérialiser l’entité de table instance la méthode est appelée à l’aide de la réflexion. Les classes d’entités de table qui s’étendent TableServiceEntity peuvent tirer parti de ce comportement en implémentant des méthodes getter et setter pour les propriétés particulières de l’entité de table dans le stockage Microsoft Azure que la classe représente. Notez que les noms de propriété « PartitionKey », « RowKey » et « Timestamp » sont réservés et seront ignorés s’ils sont définis sur d’autres méthodes avec l’annotation StoreAs .

Remplacez cette méthode dans les classes qui s’étendent TableServiceEntity pour appeler du code de sérialisation personnalisé.

Overrides:

TableServiceEntity.writeEntity(final OperationContext opContext)

Parameters:

opContext - Objet OperationContext utilisé pour suivre l’exécution de l’opération.

Returns:

de java.util.HashMap noms de propriétés vers EntityProperty des String valeurs typées de données représentant les propriétés sérialisées à partir de cette entité de table instance.

Throws:

StorageException - si une erreur se produit pendant la sérialisation.

writeEntityWithReflection

public static HashMap writeEntityWithReflection(final Object instance)

Sérialise les données de propriété d’une entité de table instance dans une carte de propriétés à l’aide de la réflexion.

Cette méthode statique prend un objet instance qui représente un type d’entité table et utilise la réflexion sur son type de classe pour rechercher des méthodes permettant de sérialiser les données du instance dans le mappage de propriétés.

Chaque nom de propriété et type de données dans le mappage de propriétés est comparé aux méthodes du type de classe pour une paire de méthodes getter et setter à utiliser pour la sérialisation et la désérialisation. La classe est analysée à la recherche de méthodes dont les noms correspondent au nom de propriété avec « get » et « set » ajoutés, ou avec le StoreAs jeu d’annotations avec le nom de la propriété. Les méthodes doivent avoir des types de retour ou des types de données de paramètre qui correspondent au type de données de la valeur correspondante EntityProperty . Si une telle paire est trouvée, les données sont copiées à partir de l’objet instance en appelant la méthode getter sur le instance. Les propriétés qui n’ont pas de paire de méthode avec le nom et le type de données correspondants ne sont pas copiées.

Parameters:

instance - Référence Object à un instance d’une classe implémentant TableEntity pour sérialiser les données d’entité de table à partir de .

Returns:

Objet java.util.HashMap qui mappe les String noms de propriétés à EntityProperty des objets contenant des valeurs de données typées sérialisées à partir de l’objet de paramètre instance.

Throws:

IllegalArgumentException - si l’entité de table n’est pas valide ou n’est pas correctement mise en forme.
IllegalAccessException - si l’entité de table a levé une exception pendant la sérialisation.
InvocationTargetException - si une méthode appelée sur le paramètre instance a levé une exception pendant la sérialisation.

S’applique à