TableServiceEntity クラス

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

public class TableServiceEntity implements TableEntity

クラスは TableServiceEntity 、Storage サービスのテーブル エンティティの基本オブジェクト型を表します。 TableServiceEntity は、リフレクションを介してすべてのプロパティを TableEntity 既定でシリアル化および逆シリアル化する メソッドと を提供する インターフェイスの基本実装を提供します。 テーブル エンティティ クラスでは、このクラスを拡張し、 メソッドと メソッドをオーバーライドして、カスタマイズされた、またはよりパフォーマンスの高いシリアル化ロジックを提供できます。

リフレクションを使用すると、 の TableServiceEntity サブクラスをシリアル化および逆シリアル化できます。シリアル化コード自体を実装する必要はありません。 特定のプロパティ名とデータ型に対して getter メソッドと setter メソッドの両方が見つかった場合、適切なメソッドが自動的に呼び出され、データがシリアル化または逆シリアル化されます。 自動シリアル化コードを利用するには、テーブル エンティティ クラスで、Microsoft Azure テーブル ストレージ内の対応するテーブル エンティティ内の各プロパティに対して getter メソッドと setter メソッドを提供する必要があります。 リフレクション コードは、フォームのペアで getter メソッドと setter メソッドを検索します

および

ここで 、PropertyName はテーブル エンティティのプロパティ名であり、 は プロパティの EDM データ型と互換性のある Java 型です。 プロパティ型と Java の同等のマップについては、次の表を参照してください。 注釈を StoreAs 属性と共に適用して、プロパティ名規則に従わない getter メソッドと setter メソッドでリフレクションのプロパティ名を指定できます。 メソッド名と注釈の StoreAs 属性は、プロパティ名とリフレクションを照合する場合、大文字と小文字が区別されます。 注釈を Ignore 使用して、自動シリアル化と逆シリアル化のためにリフレクションによってメソッドが使用されないようにします。 "PartitionKey"、"RowKey"、"Timestamp"、および "Etag" という名前は予約されており、サブクラスの注釈で StoreAs 設定されている場合は無視されることに注意してください。

次の表は、Microsoft Azure Storage でサポートされているプロパティ データ型と、逆シリアル化された場合の対応する Java 型を示しています。

Microsoft Azure Storage でサポートされているプロパティ データ型

Microsoft Azure Storage サービスで使用されるテーブル、エンティティ、およびプロパティの概要については、MSDN トピック「Table Service データ モデルについて」を参照してください。

使用可能な EDM プリミティブ データ型と名前の概要については、

OData プロトコルの概要に関するページの「プリミティブ データ型」セクション。

フィールドの概要

修飾子と型 フィールドと説明
String etag

内部使用のために予約されています。 エンティティの ETag の値。

String partitionKey

内部使用のために予約されています。 エンティティ内のパーティション キーの値。

String rowKey

内部使用のために予約されています。 エンティティ内の行キーの値。

Date timeStamp

内部使用のために予約されています。 エンティティ内の Timestamp の値。

コンストラクターの概要

コンストラクター 説明
TableServiceEntity()

TableServiceEntity のインスタンスを初期化します。

TableServiceEntity(String partitionKey, String rowKey)

指定されたパーティション キーと行キーを使用して、TableServiceEntity クラスの新しいインスタンスを初期化します。

メソッドの概要

修飾子と型 メソッドと説明
String getEtag()

エンティティを検証する ETag 値を取得します。 この値は、テーブル エンティティが Microsoft Azure ストレージから最後に読み取られた後に変更されたかどうかを判断するために使用されます。 クライアントは、サービスでこの値を更新できません。

String getPartitionKey()

エンティティの PartitionKey 値を取得します。

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

反映されたエンティティ キャッシュは、エンティティが逆シリアル化され、ペイロードに JSON メタデータが含まれていない場合に、既知のエンティティ型とそれぞれの反映されたエンティティ ディクショナリをキャッシュします。

String getRowKey()

エンティティの RowKey 値を取得します。

Date getTimestamp()

エンティティのタイムスタンプを取得します。 一方、サーバーは Timestamp の値を管理します。この値は変更できません。

boolean isReflectedEntityCacheDisabled()

反映されたエンティティ キャッシュが無効かどうかを示す値を取得します。 ほとんどのシナリオでは、パフォーマンスへの影響のため、反映されたエンティティ キャッシュを無効にすることはお勧めしません。

反映されたエンティティ キャッシュには、既知のエンティティ型と、それぞれの反映されたエンティティ ディクショナリが格納されます。 既知のエンティティ型でリフレクションを使用するのではなく、代わりにディクショナリの値が使用されます。

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

プロパティ名のマップを使用して、このテーブル エンティティ インスタンスにデータ型指定された値を EntityProperty 設定します。

このメソッドは を readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) 呼び出して、リフレクションを使用してメソッドが呼び出されるテーブル エンティティ インスタンスを設定します。 拡張 TableServiceEntity するテーブル エンティティ クラスは、クラスが表す Microsoft Azure Storage のテーブル エンティティの特定のプロパティに対して getter メソッドと setter メソッドを実装することで、この動作を利用できます。

カスタム シリアル化コードを呼び出すように 拡張 TableServiceEntity するクラスで、このメソッドをオーバーライドします。

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

リフレクションを使用して、テーブル エンティティ プロパティ マップを指定したオブジェクト インスタンスに逆シリアル化します。

この静的メソッドは、テーブル エンティティ型を表すオブジェクト インスタンスを受け取り、そのクラス型のリフレクションを使用して、プロパティ マップからインスタンスにデータを逆シリアル化するメソッドを検索します。

プロパティ マップ内の各プロパティ名とデータ型は、シリアル化と逆シリアル化に使用する getter メソッドと setter メソッドのペアのクラス型のメソッドと比較されます。 クラスは、プロパティ名の先頭に "get" と "set" が付加された名前、またはプロパティ名で設定された注釈を持つ StoreAs メソッドをスキャンします。 メソッドには、対応する EntityProperty 値のデータ型と一致する戻り値の型またはパラメーター データ型が必要です。 このようなペアが見つかった場合は、インスタンスで setter メソッドを呼び出すことによって、データがインスタンス オブジェクトにコピーされます。 名前とデータ型によってメソッドペアと一致しないプロパティはコピーされません。

void setEtag(final String etag)

エンティティを検証する ETag 値を設定します。 この値は、テーブル エンティティが Microsoft Azure ストレージから最後に読み取られた後に変更されたかどうかを判断するために使用されます。 クライアントは、サービスでこの値を更新できません。

void setPartitionKey(final String partitionKey)

エンティティの PartitionKey 値を設定します。

void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

反映されたエンティティ キャッシュが無効かどうかを表すブール値を設定します。 ほとんどのシナリオでは、パフォーマンスへの影響のため、反映されたエンティティ キャッシュを無効にすることはお勧めしません。

反映されたエンティティ キャッシュには、既知のエンティティ型と、それぞれの反映されたエンティティ ディクショナリが格納されます。 既知のエンティティ型でリフレクションを使用するのではなく、代わりにディクショナリの値が使用されます。

void setRowKey(final String rowKey)

エンティティの RowKey 値を設定します。

void setTimestamp(final Date timeStamp)

エンティティの値を設定します。 timestamp プロパティは読み取り専用プロパティであり、サービスによってのみ設定されることに注意してください。

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

このテーブル エンティティ インスタンスをシリアル化することによって作成されたデータ型指定された値に対する EntityProperty プロパティ名のマップを返します。

このメソッドは、 writeEntityWithReflection(final Object instance) を呼び出して、リフレクションを使用してメソッドが呼び出されるテーブル エンティティ インスタンスをシリアル化します。 拡張 TableServiceEntity するテーブル エンティティ クラスは、クラスが表す Microsoft Azure Storage のテーブル エンティティの特定のプロパティに対して getter メソッドと setter メソッドを実装することで、この動作を利用できます。 プロパティ名 "PartitionKey"、"RowKey"、および "Timestamp" は予約されており、注釈を持つ StoreAs 他のメソッドに設定されている場合は無視されることに注意してください。

カスタム シリアル化コードを呼び出すように 拡張 TableServiceEntity するクラスで、このメソッドをオーバーライドします。

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

リフレクションを使用して、テーブル エンティティ インスタンスのプロパティ データをプロパティ マップにシリアル化します。

この静的メソッドは、テーブル エンティティ型を表すオブジェクト インスタンスを受け取り、そのクラス型のリフレクションを使用して、インスタンスからプロパティ マップにデータをシリアル化するメソッドを検索します。

プロパティ マップ内の各プロパティ名とデータ型は、シリアル化と逆シリアル化に使用する getter メソッドと setter メソッドのペアのクラス型のメソッドと比較されます。 クラスは、プロパティ名の先頭に "get" と "set" が付加された名前、またはプロパティ名で設定された注釈を持つ StoreAs メソッドをスキャンします。 メソッドには、対応する EntityProperty 値のデータ型と一致する戻り値の型またはパラメーター データ型が必要です。 このようなペアが見つかった場合は、インスタンスで getter メソッドを呼び出すことによって、インスタンス オブジェクトからデータがコピーされます。 名前とデータ型が一致するメソッド ペアがないプロパティはコピーされません。

フィールドの詳細

etag

protected String etag= null

内部使用のために予約されています。 エンティティの ETag の値。

partitionKey

protected String partitionKey= null

内部使用のために予約されています。 エンティティ内のパーティション キーの値。

rowKey

protected String rowKey= null

内部使用のために予約されています。 エンティティ内の行キーの値。

timeStamp

protected Date timeStamp= new Date()

内部使用のために予約されています。 エンティティ内の Timestamp の値。

コンストラクターの詳細

TableServiceEntity

public TableServiceEntity()

TableServiceEntity のインスタンスを初期化します。

TableServiceEntity

public TableServiceEntity(String partitionKey, String rowKey)

指定されたパーティション キーと行キーを使用して、TableServiceEntity クラスの新しいインスタンスを初期化します。

Parameters:

partitionKey - String初期化する のパーティション キーをTableServiceEntity表す 。
rowKey - String初期化する の行キーをTableServiceEntity表す 。

メソッドの詳細

getEtag

public String getEtag()

エンティティを検証する ETag 値を取得します。 この値は、テーブル エンティティが Microsoft Azure ストレージから最後に読み取られた後に変更されたかどうかを判断するために使用されます。 クライアントは、サービスでこの値を更新できません。

Overrides:

TableServiceEntity.getEtag()

Returns:

Stringエンティティの ETag を格納している 。

getPartitionKey

public String getPartitionKey()

エンティティの PartitionKey 値を取得します。

Overrides:

TableServiceEntity.getPartitionKey()

Returns:

Stringエンティティの PartitionKey 値を含む 。

getReflectedEntityCache

protected static ConcurrentHashMap<>, HashMap> getReflectedEntityCache()

反映されたエンティティ キャッシュは、エンティティが逆シリアル化され、ペイロードに JSON メタデータが含まれていない場合に、既知のエンティティ型とそれぞれの反映されたエンティティ ディクショナリをキャッシュします。

Returns:

ConcurrentHashMap<Class<?>, HashMap<String, PropertyPair>>既知のエンティティ型とその反映されたエンティティ ディクショナリを表す 。

getRowKey

public String getRowKey()

エンティティの RowKey 値を取得します。

Overrides:

TableServiceEntity.getRowKey()

Returns:

Stringエンティティの RowKey 値を格納している 。

getTimestamp

public Date getTimestamp()

エンティティのタイムスタンプを取得します。 一方、サーバーは Timestamp の値を管理します。この値は変更できません。

Overrides:

TableServiceEntity.getTimestamp()

Returns:

エンティティの java.util.Date Timestamp 値を表す オブジェクト。

isReflectedEntityCacheDisabled

public static boolean isReflectedEntityCacheDisabled()

反映されたエンティティ キャッシュが無効かどうかを示す値を取得します。 ほとんどのシナリオでは、パフォーマンスへの影響のため、反映されたエンティティ キャッシュを無効にすることはお勧めしません。

反映されたエンティティ キャッシュには、既知のエンティティ型と、それぞれの反映されたエンティティ ディクショナリが格納されます。 既知のエンティティ型でリフレクションを使用するのではなく、代わりにディクショナリの値が使用されます。

Returns:

true 反映されたエンティティ キャッシュが無効になっている場合は 。それ以外の場合は false

readEntity

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

プロパティ名のマップを使用して、このテーブル エンティティ インスタンスにデータ型指定された値を EntityProperty 設定します。

このメソッドは を readEntityWithReflection(final Object instance, final HashMap<String, EntityProperty> properties, final OperationContext opContext) 呼び出して、リフレクションを使用してメソッドが呼び出されるテーブル エンティティ インスタンスを設定します。 拡張 TableServiceEntity するテーブル エンティティ クラスは、クラスが表す Microsoft Azure Storage のテーブル エンティティの特定のプロパティに対して getter メソッドと setter メソッドを実装することで、この動作を利用できます。

カスタム シリアル化コードを呼び出すように 拡張 TableServiceEntity するクラスで、このメソッドをオーバーライドします。

Overrides:

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

Parameters:

properties - java.util.HashMapString逆シリアル化してEntityPropertyこのテーブル エンティティ インスタンスに格納するデータ値に対するプロパティ名の 。
opContext - 操作の OperationContext 実行を追跡するために使用される オブジェクト。

Throws:

StorageException - 逆シリアル化中にエラーが発生した場合は 。

readEntityWithReflection

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

リフレクションを使用して、テーブル エンティティ プロパティ マップを指定したオブジェクト インスタンスに逆シリアル化します。

この静的メソッドは、テーブル エンティティ型を表すオブジェクト インスタンスを受け取り、そのクラス型のリフレクションを使用して、プロパティ マップからインスタンスにデータを逆シリアル化するメソッドを検索します。

プロパティ マップ内の各プロパティ名とデータ型は、シリアル化と逆シリアル化に使用する getter メソッドと setter メソッドのペアのクラス型のメソッドと比較されます。 クラスは、プロパティ名の先頭に "get" と "set" が付加された名前、またはプロパティ名で設定された注釈を持つ StoreAs メソッドをスキャンします。 メソッドには、対応する EntityProperty 値のデータ型と一致する戻り値の型またはパラメーター データ型が必要です。 このようなペアが見つかった場合は、インスタンスで setter メソッドを呼び出すことによって、データがインスタンス オブジェクトにコピーされます。 名前とデータ型によってメソッドペアと一致しないプロパティはコピーされません。

Parameters:

instance - Objectテーブル エンティティ データの逆シリアル化を実装TableEntityする クラスのインスタンスへの参照。
properties - java.util.HashMapインスタンス パラメーター オブジェクトに逆シリアル化するためにEntityProperty、型指定されたデータ値を含むオブジェクトにプロパティ名をマップStringする オブジェクト。
opContext - 現在の操作のコンテキストを表す OperationContext オブジェクトです。

Throws:

IllegalArgumentException - 受け取ったテーブル エンティティの応答が無効または不適切な形式の場合。
IllegalAccessException - 逆シリアル化中にテーブル エンティティが例外をスローした場合。
InvocationTargetException - インスタンス パラメーターで呼び出されたメソッドが逆シリアル化中に例外をスローした場合。

setEtag

public void setEtag(final String etag)

エンティティを検証する ETag 値を設定します。 この値は、テーブル エンティティが Microsoft Azure ストレージから最後に読み取られた後に変更されたかどうかを判断するために使用されます。 クライアントは、サービスでこの値を更新できません。

Overrides:

TableServiceEntity.setEtag(final String etag)

Parameters:

etag - Stringエンティティの ETag を格納している 。

setPartitionKey

public void setPartitionKey(final String partitionKey)

エンティティの PartitionKey 値を設定します。

Overrides:

TableServiceEntity.setPartitionKey(final String partitionKey)

Parameters:

partitionKey - Stringエンティティの PartitionKey 値を含む 。

setReflectedEntityCacheDisabled

public static void setReflectedEntityCacheDisabled(boolean disableReflectedEntityCache)

反映されたエンティティ キャッシュが無効かどうかを表すブール値を設定します。 ほとんどのシナリオでは、パフォーマンスへの影響のため、反映されたエンティティ キャッシュを無効にすることはお勧めしません。

反映されたエンティティ キャッシュには、既知のエンティティ型と、それぞれの反映されたエンティティ ディクショナリが格納されます。 既知のエンティティ型でリフレクションを使用するのではなく、代わりにディクショナリの値が使用されます。

Parameters:

disableReflectedEntityCache -

true 反映されたエンティティ キャッシュを無効にする場合は 。それ以外の場合は false

setRowKey

public void setRowKey(final String rowKey)

エンティティの RowKey 値を設定します。

Overrides:

TableServiceEntity.setRowKey(final String rowKey)

Parameters:

rowKey - Stringエンティティの RowKey 値を格納している 。

setTimestamp

public void setTimestamp(final Date timeStamp)

エンティティの値を設定します。 timestamp プロパティは読み取り専用プロパティであり、サービスによってのみ設定されることに注意してください。

Overrides:

TableServiceEntity.setTimestamp(final Date timeStamp)

Parameters:

timeStamp - java.util.Dateエンティティの値をtimeStamp格納している 。

writeEntity

public HashMap writeEntity(final OperationContext opContext)

このテーブル エンティティ インスタンスをシリアル化することによって作成されたデータ型指定された値に対する EntityProperty プロパティ名のマップを返します。

このメソッドは、 writeEntityWithReflection(final Object instance) を呼び出して、リフレクションを使用してメソッドが呼び出されるテーブル エンティティ インスタンスをシリアル化します。 拡張 TableServiceEntity するテーブル エンティティ クラスは、クラスが表す Microsoft Azure Storage のテーブル エンティティの特定のプロパティに対して getter メソッドと setter メソッドを実装することで、この動作を利用できます。 プロパティ名 "PartitionKey"、"RowKey"、および "Timestamp" は予約されており、注釈を持つ StoreAs 他のメソッドに設定されている場合は無視されることに注意してください。

カスタム シリアル化コードを呼び出すように 拡張 TableServiceEntity するクラスで、このメソッドをオーバーライドします。

Overrides:

TableServiceEntity.writeEntity(final OperationContext opContext)

Parameters:

opContext - 操作の OperationContext 実行を追跡するために使用される オブジェクト。

Returns:

java.util.HashMapStringこのテーブル エンティティ インスタンスからシリアル化されたプロパティを表す、データ型指定された値へのプロパティ名EntityPropertyの 。

Throws:

StorageException - シリアル化中にエラーが発生した場合。

writeEntityWithReflection

public static HashMap writeEntityWithReflection(final Object instance)

リフレクションを使用して、テーブル エンティティ インスタンスのプロパティ データをプロパティ マップにシリアル化します。

この静的メソッドは、テーブル エンティティ型を表すオブジェクト インスタンスを受け取り、そのクラス型のリフレクションを使用して、インスタンスからプロパティ マップにデータをシリアル化するメソッドを検索します。

プロパティ マップ内の各プロパティ名とデータ型は、シリアル化と逆シリアル化に使用する getter メソッドと setter メソッドのペアのクラス型のメソッドと比較されます。 クラスは、プロパティ名の先頭に "get" と "set" が付加された名前、またはプロパティ名で設定された注釈を持つ StoreAs メソッドをスキャンします。 メソッドには、対応する EntityProperty 値のデータ型と一致する戻り値の型またはパラメーター データ型が必要です。 このようなペアが見つかった場合は、インスタンスで getter メソッドを呼び出すことによって、インスタンス オブジェクトからデータがコピーされます。 名前とデータ型が一致するメソッド ペアがないプロパティはコピーされません。

Parameters:

instance - Objectテーブル エンティティ データのシリアル化を実装TableEntityする クラスのインスタンスへの参照。

Returns:

java.util.HashMapインスタンス パラメーター オブジェクトからシリアル化された型指定されたデータ値を含むオブジェクトにプロパティ名EntityPropertyをマップStringする オブジェクト。

Throws:

IllegalArgumentException - テーブル エンティティが無効または不適切に書式設定されている場合は 。
IllegalAccessException - シリアル化中にテーブル エンティティが例外をスローした場合。
InvocationTargetException - インスタンス パラメーターで呼び出されたメソッドがシリアル化中に例外をスローした場合。

適用対象