库appengine.api.datastore和com.google.cloud.datastore有什么区别?

Jav*_*ado 5 java google-app-engine datastore google-cloud-datastore

我正在开发一个appengine项目并使用Google Datastore存储我的数据.我使用不同的数据存储库,因为它们是示例中使用的,但我觉得有点奇怪,我必须使用它们:

如果我检查用于查询的文档,在此示例中,他们使用此库来处理查询:

的列举

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

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); PreparedQuery pq = datastore.prepare(q); 实体结果= pq.asSingleEntity();

但是,在这个例子中存储数据,他们使用

com.google.cloud.datastore

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

实体任务= Entity.builder(taskKey).set("category","Personal").set("done",false).set("priority",4).set("description","Learn Cloud Datastore" ).build();

现在我可以使用两者,但我想知道哪一个更好用于哪种目的,或者它们是否只是具有不同包的相同库.但是,我正在寻找一种方法来删除其中一个.

小智 7

com.google.appengine.api.datastore - 专门设计用于在AppEngine上部署的应用程序.如果您以后决定在其他地方部署您的应用程序(例如,计算引擎),则API不起作用.

com.google.cloud.datastore - 是新的API,允许您从任何地方部署的应用程序访问数据存储,而不仅仅是AppEngine.

com.google.appengine.api.datastore - 有一些额外的功能,另一个没有(至少还没有).例如,OR数据存储区查询中的条件,与MemCache,FullText Search等其他AppEngine服务集成的能力.