使用Google App Engine(Java)上的键列表获取多个对象的最佳方法是什么?

时间:2010-10-19 19:18:09

标签: java google-app-engine jdoql

我有多对多的关系。就像文档中的示例一样:

Person.java
    private Set<Key> favoriteFoods;

Food.java
    private Set<Key> foodFans;

如果我检索了一个“人物”对象并且我有最喜欢的食物按键,我如何获得某个“食物迷”的所有“最喜欢的食物”。有没有更好的方式:

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

这里最便宜,最有效的选择是什么?我通常必须在我的应用程序中生成包含对象数据的表。

1 个答案:

答案 0 :(得分:1)

您似乎需要JDOQL。对于这个具体任务,请尝试:

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

contains()的行为与SQL中的IN语句类似,因此此查询将从指定的键集中获取所有Food对象。