2013-01-09 81 views
1

我正在開發一個託管在Google AppEngine上的應用程序。我使用Objectify進行數據操作。考慮一個示例種類Objectify - 獲取下一個和前一個記錄

Kind: Person 
ID Name 
100 Santhosh 
101 Upendar 
102 Suresh 
103 Naresh 

我想在獲取當前記錄時獲取上一個和下一個記錄。例如,如果我想獲得Person id 102,我想得到101和103。我不想分割這些查詢,因爲這會影響數據操作的數量。

有沒有一種方法/結構可以在這種情況下使用。

感謝

Santhosh

回答

0

那麼顯而易見的解決辦法是簡單地爲其他ID查詢以及

ofy().load().type(Person.class).ids(101L, 102L, 103L); 

如果你想物化爲你做到這一點,你需要將您的Person類改爲類似

@Entity 
class Person { 
    @Id Long id; 
    // Other attributes here 
    @Load Ref<Person> previousPerson; 
    @Load Ref<Person> nextPerson; 
} 

但是如果插入或刪除新元素,則必須更新引用。我懷疑這會使用數據存儲有效。

+0

嗨JoSo - 對不起,我在談論動態數據。即;我會有這樣的1000個記錄。當我獲取特定ID時,我想獲取上一個和下一個ID。感謝您的建議。我想避免在插入數據時填充下一個/上一個ID。 –

+0

上面提到的解決方案是我能想到的唯一解決方案。 Objectify與數據存儲低層API非常接近,根本無法做到你所要求的。如果你的ID是連續的,那麼第一個建議可以和fetchId-1,fetchId,fetchId + 1一起使用,但是你很對,這對於動態數據來說很難。根據您的使用情況,您可以嘗試更改數據模型,因此不再需要反向引用。 – konqi

相關問題