我有多对多的关系。就像文档中的示例一样:
Person.java
private Set<Key> favoriteFoods;
Food.java
private Set<Key> foodFans;
如果我检索了一个“人物”对象并且我有最喜欢的食物按键,我如何获得某个“食物迷”的所有“最喜欢的食物”。有没有更好的方式:
for (Key k: favoriteFoods)
{ foodObjectsCollection.add( pm.getObjectById(Food.class, k) ); }
这里最便宜,最有效的选择是什么?我通常必须在我的应用程序中生成包含对象数据的表。
答案 0 :(得分:1)
您似乎需要JDOQL。对于这个具体任务,请尝试:
Query query = pm.newQuery(Food.class, ":p.contains(key)");
query.execute(favoriteFoods);
contains()
的行为与SQL中的IN
语句类似,因此此查询将从指定的键集中获取所有Food对象。