GAE - 不同的数据存储访问选项 - 使用哪一个?

时间:2011-03-09 18:57:12

标签: java google-app-engine jpa google-cloud-datastore jdo

据我所知,有以下数据访问存储选项:

  • JDO
  • JPA
  • 实体,属性和密钥

您使用的是哪一个?为什么?我是所有这些的新手,并且不知道哪一个最好 ...如果有人可以向我展示所有这些选项中的绊脚石,那会很好吗?

到现在为止我更喜欢Enteties,但我不知道如何有效地实现数据模型?

由于

2 个答案:

答案 0 :(得分:3)

我避免使用JDO和JPA,因为它们让开发人员误以为Datastore是一个关系数据库。人们使用JDO / JPA,因为他们从SQL世界中了解它们,据我所知,它可能不是最优的,因为数据存储只能是关系/ SQL数据库。

您真的应该了解数据存储区如何工作并使用本机API。

因此,唯一的左侧选项是低级API(实体,属性,键)或objectify

  1. 虽然低级API为您提供了所有数据存储功能,但它会强制您使用实体而不是您的类。因此,您最终编写了许多样板代码,可以在实体和对象之间进行复制。

  2. Objectify,专为AppEngine数据存储而设计,内部使用低级API,因此它具有所有功能和速度,没有任何缺点。你应该试一试。

  3. 更新

    还有其他类似于objectify的选项(在某种意义上它们是专门为数据存储区制作的):Twig和SimpleDS。请参阅此内容以进行比较:Looking for opinions on using Objectify-appengine instead of JDO in GAE-J

答案 1 :(得分:0)

只有一个存储选项。 GAE在数据存储区之上提供了JDO和JPA API,但它只是访问数据存储区的一种不同方式(如Hibernate,JDO和JDBC是可用于访问RDBMS的三种不同的API)。