私は、ユーザーが投稿を行うことができますGoogle App Engineの(ジャワ)でアプリケーションを構築していると私はこれらの記事にタグを追加することで考えているので、私はこのようなものがあります:エンティティポストアプリケーションエンジンのデータストア:結合なしで投稿とタグを実装する方法は?
を:
エンティティタグでpublic List<Key> tags;
:
public List<Key> posts;
例えば、照会することは容易で特定のタグを持つすべての記事が、どのように私はタグのリストを持っているすべてのポストを得ることができるでしょうか? 私は各タグのクエリを作成し、結果の交差を作ることができますが、もっと良い方法があるかもしれません。なぜなら、それは多くのポストで遅くなるからです。
さらに難しいかもしれない別のものは、ポストを持っている、一般的なタグの数によって順序付けられたタグを持つ投稿を得ることです、私は何とかこのような "類似の"投稿を得ることができます。
ジョインではこれははるかに簡単ですが、私はアプリエンジンを使い始めており、ジョインを置き換える良い方法について考えることはできません。
ありがとうございます!
リストプロパティを持つエンティティを取得したときに、そのリスト内のすべてのエンティティも取得されていることはわかりませんでした...そうですか? リスト投稿を削除します。 私は、リストのプロパティでその方法でクエリを実行できることも知りませんでした。 q.setFilter( "tags" == 'Java' && "tags == 'appengine'"); これは本当に良いニュースです:) Thanks Peter。 – Damian
エンティティをどのように実装するか、JDOまたはJPAを使用しているかどうか(JDOでのフェッチ・グループの読取りなど)に応じて、リスト内の完全なエンティティが取得される場合と取得されない場合がありますが、キーを前後に動かしていると、数千のキーが加算されます。 –