0

GAE Java アプリケーションに次の (単純化された) モデルがあると仮定します。

Entity project = new Entity("Project")
project.setProperty("name", "test");

Entity task = new Entity("Task");
task.setProperty("name", "test");
task.setProperty("project", project.getKey());

Task特定の への参照を持つすべての を取得するにはどうすればよいProjectですか?

私はもう試した

    Query q = new Query("Task");
    Query.FilterPredicate projectFilter =
            new Query.FilterPredicate("project",
                    Query.FilterOperator.EQUAL,
                    project.getKey()
                    );
    q.setFilter(projectFilter);

しかし、役に立たない。データストア ビューアーで実際のデータを確認したところ、すべて揃っています。 TasksKeyにはプロジェクトのプロパティがあり、すべてのプロパティにインデックスが付けられています。

普通とは思えない唯一のことは、(私のアプリがマルチテナンシーをサポートしていることを考えると)Projectビューアーの名前空間プレフィックスとしてのそのキーであるという事実です。

それが問題である可能性があり、解決策はありますか?

よろしくお願いします。

4

1 に答える 1

1

project.getKey().getId()代わりに使用してみてください。

または、特別なキー フィルターを使用します。Entity.KEY_RESERVED_PROPERTY

ここで説明されています:

https://developers.google.com/appengine/docs/java/datastore/queries#Key_Filters

于 2012-12-03T13:35:52.227 に答える