库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?
Posted
技术标签:
【中文标题】库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?【英文标题】:What is the difference between libraries appengine.api.datastore and com.google.cloud.datastore?库 appengine.api.datastore 和 com.google.cloud.datastore 有什么区别? 【发布时间】:2017-04-11 09:35:14 【问题描述】:我正在开发一个 appengine 项目并使用 Google Datastore 存储我的数据。我正在使用不同的 Datastore 库,因为它们是示例中使用的库,但我发现我必须同时使用这两种库有点奇怪:
如果我检查文档以进行查询,在此示例中,他们使用此库来处理查询:
com.google.appengine.api.datastore
https://cloud.google.com/appengine/docs/java/datastore/retrieving-query-results
DatastoreService 数据存储 = 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("类别", "个人") .set(“完成”,假) .set("优先级", 4) .set("描述", "学习云数据存储") .build();
现在我可以同时使用这两种方法,但我想知道哪一种更适合哪种用途,或者它们是否只是具有不同包的相同库。但是,我正在寻找一种方法来删除其中一个。
【问题讨论】:
【参考方案1】:com.google.appengine.api.datastore
- 专为在 AppEngine 上部署的应用程序工作而设计。如果您稍后决定将您的应用程序部署到其他地方(例如 Compute Engine),该 API 将不起作用。
com.google.cloud.datastore
- 是一种新的 API,允许您从部署在任何地方的应用程序访问数据存储区,而不仅仅是 AppEngine。
com.google.appengine.api.datastore
- 有一些其他人没有的附加功能(至少现在还没有)。例如,您的数据存储区查询中的OR
条件、与其他 AppEngine 服务(如 MemCache、全文搜索等)集成的能力。
【讨论】:
所以也许使用新的更好?除非我需要任何尚未包含的方法 就我的目的而言,我发现 appengine 的数据存储功能非常强大。以上是关于库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章