Каков наилучший способ получения нескольких объектов с использованием списка ключей в Google App Engine (Java)? - PullRequest
0 голосов
/ 19 октября 2010

У меня отношения многие ко многим.Как в примере из документации:

Person.java
    private Set<Key> favoriteFoods;

Food.java
    private Set<Key> foodFans;

Как получить все «любимые продукты» определенного «любителя еды», если я получил объект «Персона» и у меня есть ключ любимых продуктовзадавать.Есть ли лучший способ, чем:

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

Какой самый дешевый и эффективный вариант здесь?Мне обычно приходится создавать таблицы с объектными данными в моем приложении.

1 Ответ

1 голос
/ 19 октября 2010

Кажется, вам нужно JDOQL .Для этой конкретной задачи попробуйте:

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

contains() ведет себя так же, как оператор IN в SQL, поэтому этот запрос извлечет все объекты Food из указанного набора ключей.

...