2011-09-11 21 views
0

我有兩個類:ParentChild。父對象具有子對象列表,並且子對象具有使用@Persistent (mappedBy = "parent")的父對象的引用。如何使用JDO在AppEngine中的多對一中通過其父母過濾實體

如何通過父項屬性過濾子對象? 我試過query.setFilter("parent.key == " + parentKey);但是這並沒有奏效。我必須以某種方式將父母的屬性映射到孩子嗎?

我差不多要求這裏一樣How to filter entities by their parents in ManyToOne side in Google App Engine但使用JDO而不是JPA。

回答

3

你不能。這將需要一個App Engine數據存儲不支持的加入。相反,要麼獲取符合父條件的所有父項,然後對其子項的每個結果執行單獨查詢,或者反規範化,並將您關心的屬性添加到子實體。

+0

謝謝你的回答!但是,爲什麼孩子有一個屬性鏈接到它的父母,如果它不能被用來獲取父母本身? –

+1

@Rob它可以用來獲取父項 - 它不能用於在查詢中引用父項的屬性。如果您只想查詢給定父級的所有子級,那麼這是祖代查詢,這在JDO中不受支持 - 僅在低級別API中提供,請參閱http://code.google.com/appengine /docs/java/datastore/queries.html。如果你有數據庫框架的選擇,我強烈建議切換到Objectify,但是。 –

+0

感謝您的回覆,我會嘗試物化,然後選擇是否重新編碼我的數據庫橋接。 –

相關問題