DatastoreServiceConfig(Google App Engine API for Java)

com.google.appengine.api.datastore

クラス DatastoreServiceConfig

  • java.lang.Object
    • com.google.appengine.api.datastore.DatastoreServiceConfig


  • public final class DatastoreServiceConfig
    extends java.lang.Object
    ユーザーが構成可能なデータストアのプロパティ。

    使用上の注意:
    DatastoreServiceConfig オブジェクトをインスタンス化するには、DatastoreServiceConfig.Builder を静的にインポートし、静的作成メソッドとその後にインスタンス ミューテータ(必要な場合)を呼び出す方法をおすすめします。

     import static com.google.appengine.api.datastore.DatastoreServiceConfig.Builder.*;
     import com.google.appengine.api.datastore.ReadPolicy.Consistency;
    
     ...
    
     // eventually consistent reads
     DatastoreServiceConfig config = withReadPolicy(new ReadPolicy(Consistency.EVENTUAL));
    
     // eventually consistent reads with a 5 second deadline
     DatastoreServiceConfig config =
       withReadPolicy(new ReadPolicy(Consistency.EVENTUAL)).deadline(5.0);
     
    • フィールドの詳細

      • DATASTORE_EMPTY_LIST_SUPPORT

        public static final java.lang.String DATASTORE_EMPTY_LIST_SUPPORT
        これは、Java SDK が空のリストを Datastore との間で読み書きする方法を決定するシステム プロパティの名前です。

        これまで Datastore には、その永続ストア内の空のリストを表現する機能がありませんでした。クライアントが空のリストを永続ストアに挿入しようとする場合、SDK ごとに Datastore に書き込むものについて下される決定が異なっていました。Java SDK は、歴史的に空のリストと null 値の両方を null 値として永続ストアに書き込んでいました。

        このフラグのリリースによって、Datastore は永続ストア内の空のリストを表現できるようになりました。このことは、Datastore SDK が空のリストと null 値を区別できることを意味します。このプロパティは、この SDK が永続ストアに空のリストを空のリストとして書き込むか、null として書き込むかを制御します。

        クエリに関する注意: null 値は Datastore によってインデックス付けできるため、クエリと対話できます。たとえば、null 値を持つすべてのエンティティを検索したり、プロパティで並べ替えたりするクエリには、null 値が含まれます。空のリストは Datastore によってインデックス付けできないため、同様のクエリには表示されません。

        したがって、このフラグが設定されていなくて(以前の動作)、空のリストが永続ストアに格納されていた場合、実際には null 値として格納されていたため、クエリ結果に表示できていました。

        このフラグが設定されていて(新しい動作)、空のリストが永続ストアに格納されている場合、空のリストとして格納されているため、クエリ結果に表示されません。

        この変数が「true」以外の値に設定されている場合、従来の動作が実行されます。

        • null のプロパティは、null として Datastore に書き込まれます。
        • 空のコレクションは、null として Datastore に書き込まれます。
        • null は、null として Datastore から読み取られます。
        • 空のコレクションは、null として読み取られます。空のリストが含まれているエンティティに対する「読み取り - 変更 - 書き込み」操作では、そのリストが null 値に変わることに注意が必要です。

        この変数が「true」に設定されている場合:

        • null のプロパティは、null として Datastore に書き込まれます。
        • 空のコレクション(#Collection.isEmpty())は空のリストとして Datastore に書き込まれます。
        • null は、null として Datastore から読み取られます。
        • 空のコレクションは、null として読み取られます。
        • 空のリストを Datastore から読み取ると、空の Collection として返されます。

        他の Datastore SDK や Datastore の将来のバージョンとの互換性を確保するために、このプロパティを true に設定することを強くおすすめします。

        フラグを設定するには次のように指定します。 System.setProperty(DatastoreServiceConfig.DATASTORE_EMPTY_LIST_SUPPORT, Boolean.TRUE.toString());

        関連情報:
        定数フィールド値
    • メソッドの詳細

      • getEmptyListSupport

        public static boolean getEmptyListSupport()
        空のリストのサポートが有効かどうかを返します。DATASTORE_EMPTY_LIST_SUPPORT をご覧ください。
      • implicitTransactionManagementPolicy

        public DatastoreServiceConfig implicitTransactionManagementPolicy(ImplicitTransactionManagementPolicy p)
        暗黙のトランザクション管理ポリシーを設定します。
        パラメータ:
        p - 設定する暗黙のトランザクション管理ポリシー。
        戻り値:
        this(チェーン用)
      • readPolicy

        public DatastoreServiceConfig readPolicy(ReadPolicy readPolicy)
        読み取りポリシーを設定します。
        パラメータ:
        readPolicy - 設定する読み取りポリシー
        戻り値:
        this(チェーン用)
      • deadline

        public DatastoreServiceConfig deadline(double deadline)
        この構成が関連付けられている DatastoreService によって開始されたすべての rpcs の期限を秒単位で設定します。
        パラメータ:
        deadline - 設定する期限。
        戻り値:
        this(チェーン用)
        スロー:
        java.lang.IllegalArgumentException - 期限が正の値でない場合。
      • maxEntityGroupsPerRpc

        public DatastoreServiceConfig maxEntityGroupsPerRpc(int maxEntityGroupsPerRpc)
        1 つの rpc で表現できるエンティティ グループの最大数を設定します。

        最大数より多くのエンティティ グループを含む非トランザクション オペレーションの場合は、データストアに対して、それぞれ最大数を超えないエンティティ グループを表す複数の非同期 rpc を実行することによって、オペレーションを実行します。そのため、put() オペレーションに 8 つのエンティティ グループがあり、最大数が 3 の場合は、3 つの rpcs が送信されます。3 つのエンティティ グループで 2 つ、2 つのエンティティ グループで 1 つです。これはパフォーマンスの改善になります。多くの場合、複数の小さい非同期 rpc は、1 つの大きい非同期 rpc より速く完了します。このプロパティの最適値はアプリケーション固有の値になるため、実験してみることをおすすめします。

        パラメータ:
        maxEntityGroupsPerRpc - rpc あたりのエンティティ グループの最大数
        戻り値:
        this(チェーン用)
        スロー:
        java.lang.IllegalArgumentException - maxEntityGroupsPerRpc がゼロ以下の場合
      • getImplicitTransactionManagementPolicy

        public ImplicitTransactionManagementPolicy getImplicitTransactionManagementPolicy()
        戻り値:
        使用する ImplicitTransactionManagementPolicy
      • getReadPolicy

        public ReadPolicy getReadPolicy()
        戻り値:
        使用する ReadPolicy
      • getMaxEntityGroupsPerRpc

        public java.lang.Integer getMaxEntityGroupsPerRpc()
        戻り値:
        rpc あたりのエンティティ グループの最大数。
      • getDeadline

        public java.lang.Double getDeadline()
        戻り値:
        使用する期限(秒単位)。null の場合もあります。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java の App Engine スタンダード環境