2016-11-27 54 views
2

我正在開發一個appengine項目並使用Google Datastore存儲我的數據。我正在使用不同的數據存儲庫,因爲它們是示例中使用的庫,但我覺得有點奇怪,我必須同時使用這兩個庫:庫appengine.api.datastore和com.google.cloud.datastore有什麼區別?

如果我檢查文檔進行查詢,在本例中,他們使用此庫過程的查詢:

的列舉

https://cloud.google.com/appengine/docs/java/datastore/retrieving-query-results

DatastoreService數據存儲= DatastoreSer viceFactory.getDatastoreService(); PreparedQuery pq = datastore.prepare(q);實體結果= pq.asSingleEntity();

然而,在該示例中存儲數據,它們使用

com.google.cloud.datastore

https://cloud.google.com/datastore/docs/concepts/entities

實體任務= Entity.builder( (「完成」,false) .set(「priority」,4) .set(「description」,「Learn Cloud Datastore」) .build();

現在我可以同時使用,但我想知道哪一種更適合哪種用途,或者它們只是具有不同軟件包的相同庫。但是,我正在尋找一種方法來刪除其中的一個。

回答

3

com.google.appengine.api.datastore - 專門設計用於從AppEngine上部署的應用程序工作。如果您稍後決定在其他地方部署您的應用程序(例如計算引擎),則API不起作用。

com.google.cloud.datastore - 是新的API,允許您從任何地方部署的應用程序訪問數據存儲,而不僅僅是AppEngine。

com.google.appengine.api.datastore - 有一些額外的功能,其他人沒有(至少還沒有)。例如,您的數據存儲查詢中的OR條件,與其他AppEngine服務(如MemCache,全文搜索等)集成的能力。

+0

所以也許最好使用新的?除非我需要任何尚未包含的方法 –

+0

爲了我的目的,我發現appengine的數據存儲非常強大。 –