关于如何最好地访问 Google App Engine 数据存储区的任何建议?通过 JDO、JPA 还是 native API?

JDO/JPA 的明显优势是可移植到其他数据库引擎,但除此之外,还有什么理由不直接使用 Datastore API?

最佳答案

我对 JPA 了解不多,但我选择了 JDO,如果您不熟悉 JDO,我可以说它具有非常陡峭的学习曲线和许多不适用于 GAE 的无关内容。您所做的是 owned relationships,,它允许您拥有相互实际引用的类,而不仅仅是数据存储 ID。 JDO 还通过注释做一些有用的事情,例如@Element(dependent = "true") 注释,它可以为您节省大量工作,因为它允许您删除父对象,而 JDO 将删除其所有子对象。一般来说,GAE 文档遗漏了很多有效使用 JDO 需要知道的事情,所以我会说阅读 datanucleus 文档至关重要,并特别注意获取组。

您还可以找到大量简洁的 JDO 和 JPA 示例,它们几乎可以解决所有可能的场景 here.

最后,我将看一下Objectify和Twig这两个显然流行的替代框架,当我也尝试做出此决定时,它们在question I asked中提到。

附带说明一下,至于到其他数据库的可移植性,我认为担心 GAE 的可移植性有点误导。尽管 Google 希望我们认为 GAE 代码是可移植的,但我认为这是一个白日梦。您最终将针对 Google 提供的特定 API 组合进行编码,这种组合您可能在其他任何地方都看不到,并且还围绕 GAE 的许多限制和特质进行编码,所以我会忘记将可移植性作为解决问题的一个因素数据访问 API。事实上,如果我可以在这个问题上重新做出决定,我想我会使用专门为 GAE 构建的数据访问框架,例如 objectify。

关于google-app-engine - 访问 GAE 数据存储区 : Use JDO, JPA 或低级 API?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4232944/

10-10 12:45