2010-04-19 31 views
1

有沒有辦法將多次旅行合併到數據存儲中進行一次旅程?我有這樣的事情:將多次旅程摺疊到數據存儲中進行單次旅行?

class User { 
    @PrimaryKey 
    private String mUsername; 
} 

class Horse { 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Key mKey; 

    @Persistent 
    private String mOwnerUsername; 
} 

class Cow { 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Key mKey; 

    @Persistent 
    private String mOwnerUsername; 
} 

用戶可以擁有許多馬或牛。現在,讓所有用戶的馬和牛的,我正在做三個單獨前往的數據存儲三個單獨的查詢,像:

User user = select from Users where userid = 'abc'; 
List<Horse> horses = select from Horses where ownerUsername = 'abc'; 
List<Cow> cows = select from Cows where ownerUsername = 'abc'; 

是有辦法這三個壓縮爲單趟數據存儲?我不想製作User類的馬和牛成員,因爲它們可能數量龐大,並且不希望在用戶的每次加載時加載它們。用戶也不擁有馬或牛的獨有權,他們可以由許多不同的實體擁有。

感謝

回答

1

如果您使用的鍵名,就可以使第一查詢到fetch by key操作,這是更快。如果您使用JDO以外的框架,則可以將多個按鍵操作的抓取分組到一個往返中。

但是,您不能將多個查詢合併爲一個請求,您也不能(當前)執行異步請求。