Query(Google App Engine API for Java)

com.google.appengine.api.datastore

クラス Query

  • java.lang.Object
    • com.google.appengine.api.datastore.Query
  • すべての実装インターフェース:
    java.io.Serializable


    public final class Query
    extends java.lang.Object
    implements java.io.Serializable
    Query は、データストアに対する 0 個以上の Entity オブジェクトのリクエストをカプセル化します。これは、0 個以上のプロパティのクエリ、祖先によるクエリ、ソートをサポートしています。 クエリと一致する Entity オブジェクトを、単一のリストで、または無制限のイテレータで取得できます。
    関連情報:
    シリアル化されたフォーム
    • フィールドの詳細

      • KIND_METADATA_KIND

        @Deprecated
        public static final java.lang.String KIND_METADATA_KIND
        非推奨。 
        関連情報:
        定数フィールド値
      • PROPERTY_METADATA_KIND

        @Deprecated
        public static final java.lang.String PROPERTY_METADATA_KIND
        非推奨。 
        関連情報:
        定数フィールド値
      • NAMESPACE_METADATA_KIND

        @Deprecated
        public static final java.lang.String NAMESPACE_METADATA_KIND
        非推奨。 
        関連情報:
        定数フィールド値
    • コンストラクタの詳細

      • クエリ

        public Query()
        Entity オブジェクトを検索する新規の種類を指定しない Query を作成します。Java dev appserver では、種類を指定しないクエリがまだサポートされていないことに注意してください。

        現在のところ、種類を指定しないクエリでサポートされているオペレーションは、__key__ によるフィルタ、祖先、および __key__ による昇順ソートだけです。

      • クエリ

        public Query(java.lang.String kind)
        指定された kind を持つ Entity オブジェクトを検索する新しい Query を作成します。Java dev appserver では、種類を指定しないクエリがまだサポートされていないことに注意してください。
        パラメータ:
        kind - 種類を指定しないクエリを作成するための種類または null
      • クエリ

        public Query(Key ancestor)
        指定された Key を祖先として持つ Entity オブジェクトを検索する新しい Query を作成します。
        パラメータ:
        ancestor - 祖先キーまたは null
        スロー:
        java.lang.IllegalArgumentException - 祖先が完全でない場合。
      • クエリ

        public Query(java.lang.String kind,
                     Key ancestor)
        指定された kind と指定された ancestor を持つ Entity オブジェクトを検索する新しい Query を作成します。Java dev appserver では、種類を指定しないクエリがまだサポートされていないことに注意してください。
        パラメータ:
        kind - 種類を指定しないクエリを作成するための種類または null
        ancestor - 祖先キーまたは null
        スロー:
        java.lang.IllegalArgumentException - 祖先が完全でない場合。
    • メソッドの詳細

      • getKind

        public java.lang.String getKind()
        この値に一致する種類の Entity オブジェクトのみが返されます。
      • getAppId

        public java.lang.String getAppId()
        この Query の appId を返します。
      • getNamespace

        public java.lang.String getNamespace()
        この Query の名前空間を返します。
      • getAncestor

        public Key getAncestor()
        このクエリの現在の祖先を取得します。祖先が指定されていない場合は null を返します。
      • setAncestor

        public Query setAncestor(Key ancestor)
        このクエリの祖先を設定します。

        これによりクエリが限定され、特定のエンティティの子孫である結果エンティティのみが返されます。つまり、すべての結果は、親、または親の親などとしてその祖先を持ちます。

        null が指定されると、以前に設定された祖先がすべて設定解除されます。パラメータとして null を渡した場合、祖先のないエンティティはクエリされません(このタイプのクエリは現在サポートされていません)。

        戻り値:
        this(チェーン用)
        スロー:
        java.lang.IllegalArgumentException - 祖先キーが不完全な場合、または祖先を設定解除しようとしたときに種類が未設定である場合、または祖先を設定解除しようとしたときに祖先が未設定の場合。
      • setDistinct

        public Query setDistinct(boolean distinct)
        パラメータ:
        distinct - このクエリを distinct にする必要がある場合。これは、クエリに射影がある場合にのみ使用できます。
        戻り値:
        this(チェーン用)
      • getDistinct

        public boolean getDistinct()
        戻り値:
        このクエリが distinct の場合
        関連情報:
        setDistinct(boolean)
      • addFilter

        @Deprecated
        public Query addFilter(java.lang.String propertyName,
                                           Query.FilterOperator operator,
                                           java.lang.Object value)
        非推奨。 setFilter(Filter) を使用してください。
        指定されたプロパティに Query.FilterPredicate を追加します。

        このメッセージを使って追加されたすべての Query.FilterPredicate が、Query.CompositeFilterOperator.AND を使用して組み合わされます。

        setFilter(Filter)(単一の Query.Filter を複数の Query.FilterPredicate の代わりに設定する)と一緒に使用することはできません。

        パラメータ:
        propertyName - フィルタが適用されるプロパティの名前。
        operator - フィルタ演算子。
        value - サポートされているデータストア型のインスタンス。propertyName で識別される複数値のプロパティを持つエンティティは、複数値プロパティの中に、operator および value によって表される条件に一致する値が 1 つ以上あれば、このフィルタに一致します。複数値のプロパティのフィルタリングの詳細については、データストアのドキュメントを参照してください。
        戻り値:
        this(チェーン用)
        スロー:
        java.lang.NullPointerException - propertyName または operator が null の場合。
        java.lang.IllegalArgumentException - value が、データストアでサポートされている型でない場合。DataTypeUtils.isSupportedType(Class) をご覧ください。PropertyContainer.setProperty(String, Object) とは異なり、このメソッドに、サポートされる型のインスタンスを含む Collection を指定することはできません。
      • addSort

        public Query addSort(java.lang.String propertyName)
        クエリ結果のソート方法を指定します。

        addSort を初めて呼び出すと、プライマリ ソートキーとして機能するプロパティが登録されます。さらに 2 回目の addSort の呼び出しでは、セカンダリ ソートキーが設定されるといった具合に続きます。

        このメソッドでは常に昇順でソートします。ソート順を制御するには、addSort(String,SortDirection) を使用します。

        propertyName で識別される複数値プロパティを持つエンティティは、リスト内の最小値を基準にソートされます。複数値を持つプロパティのソートの詳細については、データストアのドキュメントを参照してください。

        戻り値:
        this(チェーン用)
        スロー:
        java.lang.NullPointerException - いずれかの引数が null の場合。
      • addSort

        public Query addSort(java.lang.String propertyName,
                             Query.SortDirection direction)
        クエリ結果のソート方法を指定します。

        addSort を初めて呼び出すと、プライマリ ソートキーとして機能するプロパティが登録されます。さらに 2 回目の addSort の呼び出しでは、セカンダリ ソートキーが設定されるといった具合に続きます。

        directionQuery.SortDirection.ASCENDING である場合、propertyName で識別される複数値プロパティを持つエンティティは、リスト内の最小値を基準にソートされます。directionQuery.SortDirection.DESCENDING である場合、propertyName で識別される複数値プロパティを持つエンティティは、リスト内の最大値を基準にソートされます。複数値を持つプロパティのソートの詳細については、データストアのドキュメントを参照してください。

        戻り値:
        this(チェーン用)
        スロー:
        java.lang.NullPointerException - いずれかの引数が null の場合。
      • getSortPredicates

        public java.util.List<Query.SortPredicate> getSortPredicates()
        現在のソート述語の変更可能なリストを返します。
      • setKeysOnly

        public Query setKeysOnly()
        このクエリに、完全なエンティティではなく、キーのみを取得して返させます。
        戻り値:
        this(チェーン用)
      • clearKeysOnly

        public Query clearKeysOnly()
        キーのみのフラグをクリアします。
        戻り値:
        this(チェーン用)
        関連情報:
        setKeysOnly()
      • addProjection

        public Query addProjection(Projection projection)
        このクエリの射影を追加します。

        射影には次のような制限があります。

        • インデックスが作成されていないプロパティを射影することはできません。射影しようとしても、エンティティは返されません。
        • 射影 names は一意である必要があります。
        • 等式フィルタが適用されているプロパティは射影できません。これには、演算子 Query.FilterOperator.EQUAL および Query.FilterOperator.IN が含まれます。
        パラメータ:
        projection - 追加する射影
        戻り値:
        this(チェーン用)
        スロー:
        java.lang.IllegalArgumentException - クエリにすでに同じ名前を持つ射影が含まれている場合
        関連情報:
        getProjections()
      • getProjections

        public java.util.Collection<Projection> getProjections()
        このクエリの射影に含まれる変更可能なコレクション プロパティを返します。

        空の場合は、エンティティ全体またはキーのみのエンティティが返されます。それ以外の場合は、部分的なエンティティが返されます。空でない射影は、キーのみの設定と互換性がありません。この場合、クエリが prepared であると、IllegalArgumentException がスローされます。

        射影クエリは次の形式の SQL 文と似ています。

        SELECT prop1, prop2, ...
        射影に指定されたプロパティのみを含む部分的なエンティティを返します。ただし、これらのエンティティには、すべての複数値プロパティに対して単一の値だけが含まれ、複数値プロパティが、不等式プロパティ、または射影されたプロパティの順序で指定されている場合、エンティティは一意の値の組み合わせごとに 1 回ずつ複数回返されます。

        射影を指定すると:

        • 射影で返されるプロパティの型を変更できます。
        • 指定されたクエリのインデックス要件を変更できます。
        • 部分的なエンティティが返されます。
        • それらのプロパティを含むエンティティのみが返されます。
        ただし、射影クエリは通常のクエリよりも大幅に高速になります。
        戻り値:
        このクエリの射影に含まれる変更可能なコレクション プロパティ
        関連情報:
        addProjection(Projection)
      • isKeysOnly

        public boolean isKeysOnly()
        このクエリでキーのみを取得して返す場合は true を返し、完全なエンティティを取得して返す場合は false を返します。
      • reverse

        public Query reverse()
        現在のクエリとは正反対の方向にソートされたクエリを作成します。

        この関数では Entity.KEY_RESERVED_PROPERTY のソート順が必要です。それによって、各エンティティがソートで使用される一連のプロパティによって一意に識別されます(クエリの順序を完全に逆にする必要があります)。なお上級ユーザーは、Entity.KEY_RESERVED_PROPERTY のソート順がなくても、ソートされる一連のプロパティがこの要件を満たすことがわかっていれば、ソート順を手動で逆にすることができます。

        逆引きクエリの結果は、逆方向での正引きクエリの結果と同じになります。

        逆引きクエリでは、元のクエリの Cursors も使用できます。

        戻り値:
        ソート順序が逆の新しいクエリ。
        スロー:
        java.lang.IllegalStateException - 現在のクエリが Entity.KEY_RESERVED_PROPERTY によってソートされていない場合。
      • equals

        public boolean equals(java.lang.Object o)
        オーバーライド:
        equals - クラス java.lang.Object
      • hashCode

        public int hashCode()
        オーバーライド:
        hashCode - クラス java.lang.Object
      • toString

        public java.lang.String toString()
        クエリを表す SQL のような文字列を出力します。
        オーバーライド:
        toString - クラス java.lang.Object
このページは役立ちましたか?評価をお願いいたします。

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

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