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()行为就像INSQL 中的语句,所以这个查询将从指定的键集中获取所有 Food 对象。

于 2010-10-19T19:40:45.070 回答