DatastoreService(Google App Engine API for Java)

com.google.appengine.api.datastore

インターフェース DatastoreService

  • すべてのスーパーインターフェース:
    BaseDatastoreService


    public interface DatastoreService
    extends BaseDatastoreService
    DatastoreService は、スキーマレスのデータ ストレージ システムへの同期アクセスを提供します。このシステムのデータの基本単位は Entity であり、これには不変の ID (Key で表される)と 0 個以上の変更可能なプロパティが含まれます。Entity オブジェクトは、識別子による作成、更新、削除、取得と、プロパティの組み合わせによるクエリが可能です。

    DatastoreService はトランザクションで使用でき、「現在の」トランザクションの概念をサポートします。現在のトランザクションは、beginTransaction() を呼び出すことによって確立されます。このメソッドによって返されたトランザクションは、commit または rollback が試行されるか、beginTransaction() に別の呼び出しが行われると、現在のトランザクションではなくなります。トランザクションは、そのトランザクションを作成したスレッド内でのみ現在のトランザクションであることができます。

    put、get、delete のさまざまなオーバーロードはすべてトランザクションをサポートします。このクラスのユーザーは、(null の可能性がある)Transaction をこれらのメソッドに明示的に渡したり、ImplicitTransactionManagementPolicy によって制御される動作に依存したりすることができます。ユーザーが Transaction を明示的に指定する場合、Transaction.commit() または Transaction.rollback() はユーザーが適時に呼び出します。ユーザーが暗黙のトランザクション管理を利用し、インストールされたポリシーによってトランザクションが作成される場合、そのトランザクションは、オペレーションによってユーザーに返される前に、commit(成功の場合)または rollback(失敗の場合)されます。ImplicitTransactionManagementPolicy に従ってトランザクションを管理するメソッドは、delete(Key...)delete(Iterable)get(Key)get(Iterable)put(Entity)put(Iterable) です。

    Transaction パラメータを使用する prepare のオーバーロードは、Transaction パラメータを使用する put、get、delete のオーバーロードと同じように動作します。ただし、put、get、delete とは異なり、Transaction パラメータを使用しない prepare のオーバーロードは、すでに実行中の場合は既存の Transaction を使用せず、まだ実行していない場合は ImplicitTransactionManagementPolicy を参照しません。

    • メソッドの詳細

      • get

        Entity get(Key key)
            throws EntityNotFoundException
        指定された Key を持つ Entity を取得します。

        現在のトランザクションがある場合、このオペレーションはそのトランザクション内で実行されます。この場合、commit または rollback は呼び出し元が行います。現在のトランザクションがない場合、トランザクションに関するこのメソッドの動作は、DatastoreServiceConfig で利用可能な ImplicitTransactionManagementPolicy によって決定されます。

        スロー:
        EntityNotFoundException - 指定されたエンティティが見つからなかった場合。
        java.lang.IllegalArgumentException - 指定されたキーが無効な場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • get

        Entity get(Transaction txn,
                   Key key)
            throws EntityNotFoundException
        get(Key) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
        EntityNotFoundException
      • get

        java.util.Map<Key,Entity> get(java.lang.Iterable<Key> keys)
        keys に一致する Entities のセットを取得します。結果 Map には Entities が見つかった Keys のみが含められます。

        現在のトランザクションがある場合、このオペレーションはそのトランザクション内で実行されます。この場合、commit または rollback は呼び出し元が行います。現在のトランザクションがない場合、トランザクションに関するこのメソッドの動作は、DatastoreServiceConfig で利用可能な ImplicitTransactionManagementPolicy によって決定されます。

        スロー:
        java.lang.IllegalArgumentException - キーのいずれかの Key が無効な場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • get

        java.util.Map<Key,Entity> get(Transaction txn,
                                      java.lang.Iterable<Key> keys)
        get(Iterable) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
      • put

        Key put(Entity entity)
        指定された Entity がまだデータストアにない場合は、作成してその Key を割り当てます。指定された Entity がすでにデータストアに存在する場合は、新しいバージョンを保存します。

        Key が返され、将来の entity.getKey() 呼び出しによっても返されます。

        現在のトランザクションがある場合、このオペレーションはそのトランザクション内で実行されます。この場合、commit または rollback は呼び出し元が行います。現在のトランザクションがない場合、トランザクションに関するこのメソッドの動作は、DatastoreServiceConfig で利用可能な ImplicitTransactionManagementPolicy によって決定されます。

        スロー:
        java.lang.IllegalArgumentException - 指定されたエンティティが不完全な場合。
        java.util.ConcurrentModificationException - エンティティが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • put

        Key put(Transaction txn,
                Entity entity)
        put(Entity) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
        java.util.ConcurrentModificationException - エンティティが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • put

        java.util.List<Key> put(java.lang.Iterable<Entity> entities)
        すべての entities の一括 put を実行します。

        現在のトランザクションがある場合、このオペレーションはそのトランザクション内で実行されます。この場合、commit または rollback は呼び出し元が行います。現在のトランザクションがない場合、トランザクションに関するこのメソッドの動作は、DatastoreServiceConfig で利用可能な ImplicitTransactionManagementPolicy によって決定されます。

        戻り値:
        put されたエンティティに割り当てられた Key。引数として指定される Iterable の反復順序が固定されている場合は、返される ListKey の順序は同じになります。引数として指定される Iterable の反復順序が固定されていない場合は、返される ListKey の順序は定義されません。
        スロー:
        java.lang.IllegalArgumentException - エンティティが不完全な場合。
        java.util.ConcurrentModificationException - 指定されたエンティティが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • put

        java.util.List<Key> put(Transaction txn,
                                java.lang.Iterable<Entity> entities)
        put(Iterable) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        戻り値:
        put されたエンティティに割り当てられた Key。引数として指定される Iterable の反復順序が固定されている場合は、返される ListKey の順序は同じになります。引数として指定される Iterable の反復順序が固定されていない場合は、返される ListKey の順序は定義されません。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
        java.util.ConcurrentModificationException - 指定されたエンティティが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • delete

        void delete(Key... keys)
        keys で指定された Entity entities を削除します。

        現在のトランザクションがある場合、このオペレーションはそのトランザクション内で実行されます。この場合、commit または rollback は呼び出し元が行います。現在のトランザクションがない場合、トランザクションに関するこのメソッドの動作は、DatastoreServiceConfig で利用可能な ImplicitTransactionManagementPolicy によって決定されます。

        スロー:
        java.lang.IllegalArgumentException - 指定されたキーが無効だった場合。
        java.util.ConcurrentModificationException - 指定されたキーが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • delete

        void delete(Transaction txn,
                    Key... keys)
        delete(Key...) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
        java.util.ConcurrentModificationException - 指定されたキーが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • delete

        void delete(java.lang.Iterable<Key> keys)
        delete(Key...) と同等です。
        スロー:
        java.util.ConcurrentModificationException - 指定されたキーが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • delete

        void delete(Transaction txn,
                    java.lang.Iterable<Key> keys)
        delete(Iterable) と同じ動作をしますが、指定されたトランザクション内で実行します。commit または rollback は呼び出し元が行います。トランザクションは null の可能性があります。
        スロー:
        java.lang.IllegalStateException - txn が null でなくアクティブでない場合。
        java.util.ConcurrentModificationException - 指定されたキーが属するエンティティ グループが同時に変更された場合。
        DatastoreFailureException - 他のデータストア エラーが発生した場合。
      • allocateIds

        KeyRange allocateIds(java.lang.String kind,
                             long num)
        ID は、親キーと種類によって定義された名前空間内に割り当てられます。このメソッドでは、null の親キー(ルート エンティティ)と指定された種類によって定義された名前空間内で、サイズ num の一意の ID の連続する範囲を割り当てます。

        このようにして割り当てられた ID は、新たに作成されたエンティティに手動で指定できます。これは、同じ種類のルート エンティティのデータストアの自動 ID アロケータでは使用されません。

        パラメータ:
        kind - ルート エンティティ ID を割り当てる必要がある種類。
        num - 割り当てる ID の数。
        戻り値:
        サイズ numKeyRange
        スロー:
        java.lang.IllegalArgumentException - num が 1 より小さい場合、または num が 10 億より大きい場合。
        DatastoreFailureException - データストア エラーが発生した場合。
      • allocateIds

        KeyRange allocateIds(Key parent,
                             java.lang.String kind,
                             long num)
        ID は、親キーと種類によって定義された名前空間内に割り当てられます。このメソッドでは、指定された親キーと指定された種類によって定義された名前空間内で、サイズ num の一意の ID の連続する範囲を割り当てます。

        このようにして割り当てられた ID は、新たに作成されたエンティティに手動で指定できます。これは、種類と親が同じエンティティのデータストアの自動 ID アロケータでは使用されません。

        パラメータ:
        parent - 子エンティティ ID を割り当てる必要があるキー。null の場合もあります。
        kind - 子エンティティ ID を割り当てる必要がある種類。
        num - 割り当てる ID の数。
        戻り値:
        一意であることが保証されているサイズ num の ID の範囲。
        スロー:
        java.lang.IllegalArgumentException - parent が完全なキーでない場合、num が 1 より小さい場合、または num が 10 億より大きい場合。
        DatastoreFailureException - データストア エラーが発生した場合。
      • allocateIdRange

        DatastoreService.KeyRangeState allocateIdRange(KeyRange range)
        このメソッドでは、ユーザーが指定した、一意の ID の連続する範囲を割り当てます。

        これらの ID が割り当てられると、新たに作成されたエンティティに手動で指定できます。

        データストアの自動 ID アロケータは、既存のエンティティを上書きするキーを新しいエンティティに割り当てないため、指定された KeyRange に作成されたエンティティは上書きされません。ただし、この範囲に手動で割り当てたキーのエンティティを作成すると、返された DatastoreService.KeyRangeState によっては、既存のエンティティ(あるいは、別のリクエストで作成された新しいエンティティ)が上書きされる場合があります。

        このメソッドは、予約する数値 ID 範囲が存在する場合にだけ使用してください(たとえば、ID のあるエンティティを一括で読み込む場合など)。受け取る ID が必要ない場合は、allocateIds(java.lang.String, long) を代わりに使用します。

        パラメータ:
        range - 割り当てるキー範囲。
        戻り値:
        割り当てられた ID 範囲の状態。
        スロー:
        DatastoreFailureException - データストア エラーが発生した場合。
      • getDatastoreAttributes

        DatastoreAttributes getDatastoreAttributes()
        現在のデータストアの属性を取得します。
        戻り値:
        リクエストを満たすために使用したデータストアの属性。
        スロー:
        DatastoreFailureException - データストア エラーが発生した場合。
      • getIndexes

        java.util.Map<Index,Index.IndexState> getIndexes()
        アプリケーションのインデックスとその状態を返します。
このページは役立ちましたか?評価をお願いいたします。

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

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