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

发布于 2024-09-28 01:17:55 字数 407 浏览 7 评论 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) ); }

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

I have a many-to-many relationship. Just like in the example from the documentation:

Person.java
    private Set<Key> favoriteFoods;

Food.java
    private Set<Key> foodFans;

How do I get all "favorite foods" of a certain "food fan", if i have retrieved a "Person" object and i have the favoriteFoods key set. Is there a better way than:

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

What's the cheapest and most efficient option here? I usually have to generate tables with object data in my app.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羞稚 2024-10-05 01:17:55

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

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

contains() 的行为就像 SQL 中的 IN 语句一样,因此该查询将从指定的键集中获取所有 Food 对象。

It seems like you need JDOQL. For this concrete task try:

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

contains() behaves just like IN statement in SQL, so this query will fetch all Food objects from specified key set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文