我正在开发一个应用引擎项目并使用 Google 数据存储存储我的数据。我使用的是不同的 Datastore 库,因为它们是示例中使用的库,但我发现我必须同时使用这两种库有点奇怪:
如果我查看文档进行查询,在这个例子中他们使用这个库来处理查询:
com.google.appengine.api.datastore
https://cloud.google.com/appengine/docs/java/datastore/retrieving-query-results
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); PreparedQuery pq = datastore.prepare(q); Entity result = pq.asSingleEntity();
但是,在这个例子中存储数据,他们使用
com.google.cloud.datastore
https://cloud.google.com/datastore/docs/concepts/entities
Entity task = Entity.builder(taskKey) .set("category", "Personal") .set("done", false) .set("priority", 4) .set("description", "Learn Cloud Datastore") .build();
现在我可以同时使用两者,但我想知道哪一个更适合哪种用途,或者它们是否只是具有不同包的相同库。但是,我正在寻找一种方法来删除其中一个。
最佳答案
com.google.appengine.api.datastore
- 专门设计用于部署在 AppEngine 上的应用程序。如果您稍后决定将您的应用程序部署到其他地方(例如 Compute Engine),该 API 将不起作用。
com.google.cloud.datastore
- 是新的 API,它允许您从部署在任何地方的应用访问数据存储,而不仅仅是 AppEngine。
com.google.appengine.api.datastore
- 有一些其他功能没有(至少现在没有)的附加功能。例如,数据存储区查询中的 OR
条件,与其他 AppEngine 服务(如 MemCache、全文搜索等)集成的能力。
关于java - 库 appengine.api.datastore 和 com.google.cloud.datastore 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831158/