|
|||||||||
| 上一個套件 下一個套件 | 框架 無框架 | ||||||||
請參閱:
說明
| 介面摘要 | |
|---|---|
| DatastoreConfig | 可讓使用者設定的資料存放區屬性 |
| DatastoreService | DatastoreService 提供無結構描述的資料存放系統的存取方法。 |
| PreparedQuery | 包含從一個 Query 擷取或傳回實體的方法。 |
| Transaction | 說明針對資料存放區執行的一個工作邏輯單位。 |
| 類別摘要 | |
|---|---|
| Blob | Blob 包含不限大小的位元組陣列。 |
| DatastoreServiceFactory | 建立 DatastoreService 實作。 |
| DataTypeTranslator | DataTypeTranslator 是多用途類別,可在資料存放區的 Property 通訊協定緩衝區與使用者面向類別 (String、User 等) 間互相轉換。 |
| DataTypeTranslator.ComparableByteArray | 實作 Comparable 之 byte[] 的包裝函式。 |
| DataTypeUtils | DataTypeUtils 呈現了更簡單的介面,可讓使用者程式碼決定哪個「類別」可以安全地在資料存放區中儲存為屬性。 |
| Entity | Entity 是資料存放區的基本單位。 |
| EntityTranslator | EntityTranslator 包含將 Entity 轉譯成通訊協定緩衝區的邏輯,而通訊協定緩衝區是用來將它傳遞給 API 的實作。 |
| FetchOptions | 描述在執行 PreparedQuery 時,要套用的限制、位移與區塊大小。 |
| FetchOptions.Builder | 包含 FetchOptions 的靜態建立方法。 |
| Key | 某個資料存放區實體的主要金鑰。 |
| KeyFactory | 允許您在根實體群組 (非父系) 建立任何 Key 物件。 |
| KeyFactory.Builder | 透過上階幫助建構 Keys 的輔助類別。 |
| Link | Link 是一個有長度限制的 URL。 |
| Query | Query 會為資料存放區的零或多個 Entity 物件封裝一個要求。 |
| Query.FilterPredicate | FilterPredicate 是資料容器,包含單一篩選述詞。 |
| Query.SortPredicate | SortPredicate 是資料容器,包含單一排序述詞。 |
| ShortBlob | ShortBlob 包含一個比 DataTypeUtils.MAX_SHORT_BLOB_PROPERTY_LENGTH 短的位元組陣列。 |
| Text | Text 環繞一個沒有長度限制的字串。 |
| 列舉摘要 | |
|---|---|
| ImplicitTransactionManagementPolicy | 說明資料存放區對於隱含交易管理的各種原則。 |
| Query.FilterOperator | FilterOperator 指定您想要套用到篩選器的運算子類型。 |
| Query.SortDirection | SortDirection 控制排序的順序。 |
| 例外狀況摘要 | |
|---|---|
| DatastoreFailureException | 與資料存放區溝通時,如有不明錯誤發生即擲回 DatastoreFailureException。 |
| DatastoreNeedIndexException | 當查詢要求索引,但卻沒有符合的索引時,即擲回 DatastoreNeedIndexException。 |
| DatastoreTimeoutException | 當資料存放區操作逾時之時,即擲回 DatastoreTimeoutException。 |
| EntityNotFoundException | 找不到有指定 Key 的 Entity 時,即擲回 EntityNotFoundException。 |
| PreparedQuery.TooManyResultsException | 指出 PreparedQuery.asSingleEntity() 有太多結果。 |
資料存放區為「應用服務引擎」應用程式提供持續性的資料儲存服務,可直接或間接透過所提供的 JDO 或 JPA 介面來使用。它為容錯提供獨立放區。如需詳細資訊,請參閱線上文件。
此套件包含一個資料存放區的低階 API,主要目的是為了架構編寫者。應用程式編寫者應該考慮使用所提供的資料存放區 JDO 或 JPA 介面。如果直接使用資料存放區 API,一般使用模式為:
// Get a handle on the datastore itself
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
// Lookup data by known key name
Entity userEntity = datastore.get(KeyFactory.createKey("UserInfo", email));
// Or perform a query
Query query = new Query("Task", userEntity);
query.addFilter("dueDate", Query.FilterOperator.LESS_THAN, today);
for (Entity taskEntity : datastore.prepare(query).asIterable()) {
if ("done".equals(taskEntity.getProperty("status"))) {
datastore.delete(taskEntity);
} else {
taskEntity.setProperty("status", "overdue");
datastore.put(taskEntity);
}
}
這說明了幾個基本要點:
DatastoreServiceFactory 產生的 DatastoreService 物件存取。
Entity 物件,該物件屬於已命名的種類 (上述的「UserInfo」與「Task」)。
Key 值,該值可透過 KeyFactory 擷取指定實體來建立。如果沒有立即決定金鑰,可以使用 Query 物件來擷取一個 Entity、一個清單、Interable 或 Iterator,或者擷取符合實體的數目。
Query 只搜尋與指定 UserInfo 實體相關連的 Task 實體,然後篩選出今天之前的 Task。
在實際執行中,系統無法執行非一般查詢,直到建置一或多個索引,來確保個別查詢能有效地處理為止。您可以在 WEB-INF/datastore-indexes.xml 檔案指定應用程式要求的索引集,也可以在您於「開發伺服器」測試應用程式時自動產生索引集。如果查詢要求了一個找不到的索引,系統會在執行階段擲回 DatastoreNeedIndexException。
雖然「Google 應用服務引擎」可讓使用者存取您不同版本的應用程式,但您的應用程式只有一個資料存放區,由所有版本的應用程式共用。同樣地,索引集也是由所有應用程式版本共用。
|
|||||||||
| 上一個套件 下一個套件 | 框架 無框架 | ||||||||