0

私は多対多の関係を持っています。ドキュメントの例のように:

Person.java
    private Set<Key> favoriteFoods;

Food.java
    private Set<Key> foodFans;

"Person" オブジェクトを取得し、favoriteFoods キーが設定されている場合、特定の "フード ファン" のすべての "お気に入りの食べ物" を取得するにはどうすればよいですか。より良い方法はありますか:

for (Key k: favoriteFoods)
{ foodObjectsCollection.add( pm.getObjectById(Food.class, k) ); }

ここで最も安価で効率的なオプションは何ですか? 通常、アプリでオブジェクト データを含むテーブルを生成する必要があります。

4

1 に答える 1

1

JDOQLが必要なようです。この具体的なタスクについては、次を試してください。

Query query = pm.newQuery(Food.class, ":p.contains(key)");
query.execute(favoriteFoods);

contains()SQL のステートメントと同じように動作するINため、このクエリは指定されたキー セットからすべての Food オブジェクトをフェッチします。

于 2010-10-19T19:40:45.070 に答える