2011-08-03 9 views
1

すべてのルートエンティティ(祖先を持たないエンティティ)を識別して返すクエリを作成しようとしています。私は当初Query.setAncestor(null)を呼び出してみましたが、後でこれが動作しないことをdatastore Query docsから出た:(クエリのこのタイプをQuery.setAncestor(文字列の祖先)にパラメータとしてnullを渡すApp Engineデータストア(Java)のルートエンティティをクエリする方法

は先祖なしにエンティティを照会しません。現在サポートされていません)。

これで、クエリAPIに含まれる内容がわかりました。すべてのルートエンティティを識別するクエリを作成する方法を理解できません。

これは誰もがわかっている管理コンソールにログインし、

:-)ボタンをクリックして、私を必要とwnichいくつかの手動の介入とは対照的に、私はプログラム的に機能するソリューションを探していますので、アプリの機能である必要がありますこれを行う方法?

乾杯、

エド

答えて

1

あなたは上のクエリを実行することができ、あなたのモデルにプロパティを追加する必要があります。おそらく、という名前のブール値か類似したものです。

+0

ありがとうロバート、これは分かりやすいようです。私は特別な_root_祖先を作成してルートエンティティに設定する必要があるのか​​どうか疑問に思っていましたが、あなたの提案ははるかに簡単であり、エンティティの祖先/パスを混乱させません。乾杯。 –

0

ドキュメンテーションに示されているように、これを行う方法はありません。達成しようとしていることとは反対に、達成しようとしていることを教えてくれたら、おそらく最善の方法を提案することができます。

+0

こんにちはニック、最初のポストではっきりしていない場合は謝罪 - 私はどのようにして達成しようとしていたかを正確に指定したと思った:-)私が達成しようとしていることを再実行するには:私のアプリケーションのデータストア内のすべてのルートレベルエンティティのリストを取得しようとしています。とにかく、あなたが@ロバートの答えはここに適切であると述べたように、私の目的を果たすべきです。ありがとう。 –

+0

@Edd私が言っていることは、あなたは何をしているのですか?この種の問合せを実行しようとしている場合は、データ・モデルが理想的でない可能性があることを示しており、データをモデル化するための代替方法を提案することができます。 –

+0

@NickJohnson私はそのような提案が大好きです。私の構造は、私がコミュニティのタグ/ラベルを表す 'Tag'ルートレベルのエンティティを持ち、' ​​UserTag'のサブクラスがユーザ(本当の 'User'オブジェクトではなくカスタムエンティティ)であるようなものです。私はすべてのコミュニティタグを照会したいと思います。同じエンティティグループに複数のユーザーが潜在的に同時にタグを追加/編集できる可能性があるので、それらをコミュニティタグに入れないようにしたいと思います。それをどのように構造化するかについての推奨事項、および概念的にデータストアのデータを一般的に構造化するためのさらなる読書に関する推奨事項は、大いに感謝するであろう。 – willlma

関連する問題