Запрос GAE JPA с Ancestor

Я пытаюсь выяснить, как правильно выполнить запрос jpa с предком в GAE.

Есть два класса: книга и издатель; Книга имеет одного издателя, но издатель имеет несколько книг.

вот тот без предка:

Query query = mgr.createQuery("select from Book as Book"); 
execute = (List<Book>) query.getResultList();

Как я могу сделать правильный запрос с издателем в качестве предка в запросе? Спасибо.


person Vincent Zhou    schedule 25.03.2013    source источник


Ответы (1)


Сначала вам нужно получить ключ издателя. Вы можете использовать запрос на основе ключа или, если у вас есть идентификатор издателя, вы можете просто сделать:

Key key = KeyFactory.createKey(Publisher.class.getSimpleName(), publisherId);

Получив ключ, вы можете:

query.setAncestor(key);

РЕДАКТИРОВАТЬ: я не понимал, что это способ сделать это в JDO. Не уверен в JPA, но я думаю, что это похоже...

person MikO    schedule 25.03.2013