2013-03-25 76 views
2

我想弄清楚什麼是正確的方式來與GAE的祖先jpa查詢。GAE JPA查詢與祖先

有兩類:書籍和出版商; 書有一個出版商,但出版商有多本書。

這裏是沒有ancesor之一:

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

我怎樣才能做到正確的查詢與發佈,查詢中的祖先?謝謝。

回答

0

您首先必須獲得出版商的密鑰。您可以使用基於密鑰的查詢,或者如果你有發行者的ID,你可以這樣做:

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

一旦你有鑰匙,你可以這樣做:

query.setAncestor(key); 

編輯:我沒有意識到這是在JDO中做到這一點的方法。不知道在JPA,但我認爲它是相似的...

+1

謝謝。但是query.setAncestor(key)在JPA中不起作用... – 2013-03-26 12:58:51