2011-08-07 41 views
0

使用權限管理器,如何檢索知道子項屬性和父項的子對象?Appengine JDO,我如何檢索知道子屬性和父鍵的子對象?

家長的定義是這樣的:

public class User { 

@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
private Key id; 

@Persistent(mappedBy = "user") 
@Element(dependent = "true") 
private List<Section> sections; 
... 

而且孩子是這樣定義的:

public class Section { 

@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
private Long id; 

@Persistent 
private User user; 

@Persistent 
private String title; 
... 

知道「用戶」標識和「部分」稱號,我該怎麼找回這部分?。我試圖建立一個查詢來檢索部分使用這樣的東西:'where title == xxx AND user.id¿? == xxx',但我不知道如何指定用戶ID。有沒有辦法使用持久性管理器中的查詢或方法來做到這一點?

謝謝。

回答

1

我終於用這種方法做它:

public static Section getSectionByTitle(String title, Key user_key){ 
    PersistenceManager pm = PMF.get().getPersistenceManager(); 
    Query query = pm.newQuery("select from "+Section.class.getName()+" WHERE title == s && user == keyParam"); 
    query.declareParameters("String s, String k"); 
    query.setUnique(true); 
    Section section = (Section) query.execute(title, user_key.getId()); 
    return section; 
} 
0

您可以致電查詢對象在這個方法:

q.setAncestor(ancestorKey);

閱讀this page欲瞭解更多信息(祖先查詢)。

我記得看到'where ANCESTOR ='語法,但我現在找不到任何參考。

+3

謝謝,但setAncestor方法適用於低級別的數據存儲API,我試圖使用JDO查詢。 – pablobart

相關問題