2016-11-27 56 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的数据存储非常强大。 –