GAE 是否仅适用于 BigTable(或其他数据库)?
我想用 SPRING ROO 在 GAE 上做一个非常简单的应用程序。
我不明白 Hibernate 和 JPA 之间的区别(持久性?),但我想知道为我的(“安全”)应用程序推荐什么,该应用程序将在 GAE 上运行...
换句话说,您建议我使用 BIGTABLE + HIBERNATE + JPA(这是最佳实践)吗?
tkx,
I want to do a quite simple application on GAE with SPRING ROO.
I do not understand the difference between Hibernate and JPA (persistance ?) but I would like to know what is recommended for my ('secure') app that will works on GAE...
In other terms, do you recomend me to use BIGTABLE + HIBERNATE + JPA (is it a best practice) ?
Tkx,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将无法在 GAE 上使用 Hibernate。 Hibernate 只能在关系数据库之上使用。如果您想使用 JPA,请使用 GAE 上可用的、基于 DataNucleus 的实现。请参阅 http://code.google.com/ intl/fr/appengine/docs/java/datastore/jpa/overview.html 了解详细信息。
请注意,由于 GAE 数据存储的限制,JPA 所能实现的一切在 GAE 上都无法实现。
You won't be able to use Hibernate on GAE. Hibernate is only usable on top of a relational database. If you want to use JPA, then use the implementation available on GAE, and based on DataNucleus. See http://code.google.com/intl/fr/appengine/docs/java/datastore/jpa/overview.html for details.
Note that everything possible with JPA won't be possible on GAE, due to limitations of the GAE datastore.
GAE 仅适用于 BigTable(又名数据存储区,请参阅数据存储区概述)。它提供了各种 API:从“原生”低级 API 到“本地”高级(JDO 和 JPA)。介于两者之间的第三方 API 包括 Objectify、Twig 等。我建议仔细研究它们。除此之外,您还有专门的 API,例如 Blobstore API。
对于 Hibernate 和 JPA,它们都是可以与大多数关系数据库一起使用的 API,但 Hibernate 也是一种实现 - JPA 不是。 JPA 需要一个实现,Hibernate 是最常见的实现之一。当您使用 GAE 时,您可以完全忘记 Hibernate(它不可用)。还要忘记由于数据存储的非关系性质而不受支持的大多数 JPA 功能。
GAE JPA 使用旧版本的 DataNucleus 实现。此引用来自 DataNucleus 社区页面:
看看第三方 API 会是一个提示......
GAE works only with BigTable (aka datastore, see Datastore Overview). It offers variety of APIs: from "native" low-level API to "native" high-level ones (JDO and JPA). Third-party APIs that lie somewhat in between are Objectify, Twig, etc. I recommend giving them very close look. On top of that you have specialized APIs such as Blobstore API.
In case of Hibernate and JPA they are both APIs you may use with majority of relational databases, but Hibernate is also an implementation - JPA is not. JPA needs an implementation and Hibernate is one of more common ones. When you use GAE you can completely forget about Hibernate (it's not available). Also forget about majority of JPA features as not supported due to non-relational nature of datastore.
GAE JPA uses older version DataNucleus implementation. This quote is from DataNucleus community page:
Would be a tip to look at third-party APIs...