Java AppEngine:JDO还是JPA,如何选择? [关闭]

Posted

技术标签:

【中文标题】Java AppEngine:JDO还是JPA,如何选择? [关闭]【英文标题】:Java AppEngine: JDO or JPA, How to choose? [closed] 【发布时间】:2010-11-02 22:29:50 【问题描述】:

为将在 Google AppEngine 上运行的 Grails 应用程序选择 JDO 或 JPA 的优缺点

【问题讨论】:

您是指 JDO 还是 JPA? 这解释了 Java 谷歌应用引擎的 JDO 与 JPA - ***.com/questions/1418219/… 【参考方案1】:

顺便说一下,Grails 的数据持久性建立在 Hibernate 之上。您认为 JDO 会如何帮助您解决 Hibernate 无法解决的问题?我不明白为什么人们会选择 JDO 而不是默认值。

就 JPA 而言,我建议您使用 JPA,即 Grails 附带的 JPA 的 Hibernate 实现,而不是任何 Hibernate 特定功能,除非另有说明。

[在问题发生重大变化后不再相关]

在您的实体本身中进行 CRUD 操作非常好。但是在某些情况下,您可能会发现自己在多个实体上进行操作,在这种情况下,层会变得方便而干净,恕我直言。再次,这是需求的问题。

【讨论】:

hibernate 无法与 GAE 一起使用,因此您无法使用某种形式的 JDO 或 JPA【参考方案2】:

[在问题发生重大变化后不再相关]

看看以下文章:

http://www.infoq.com/news/2007/09/jpa-dao

听起来这真的取决于您的应用程序的性质和它的大小。 JPA 更简单,所以我会坚持使用它并尽量避免在您的应用程序中使用 DAO 层,前提是它是一个相当小且简单的应用程序。

【讨论】:

【参考方案3】:

确实明白你为什么会选择 JDO。不知道其他海报提到的“默认”是什么。 JDO 与数据存储无关。 JPA 不是。 JDO 允许获取组。 JPA 没有。 JDO 允许数据存储标识。 JPA 没有。 JDO 允许数据存储事务。 JPA 没有。所有这些都是公开记录 http://db.apache.org/jdo/jdo_v_jpa.html

JDO 和 JPA 不填充相同的问题空间。它们仅对 RDBMS 重叠。 JPA 仅针对 RDBMS 设计。JPA 并不简单,API 比较证明了这一点 http://db.apache.org/jdo/jdo_v_jpa_api.html

--安迪(DataNucleus)

【讨论】:

【参考方案4】:

如果您正在为 AppEngine 构建,那么如果您使用 JDO,那么道路会更短,并且打嗝也更少。否则,您将在 JDO 引擎周围有一个 JPA 层。

【讨论】:

以上是关于Java AppEngine:JDO还是JPA,如何选择? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对于基于(以前免费的)App Engine 构建的 Java/JDO 应用程序,有啥更实惠的托管选项? [关闭]

Google App Engine 上的 JDO 与 JPA for Java

JPA 和 JDO 规范有啥区别?

App Engine、JDO 和 Maven。启动时出错

寻找关于在 GAE-J 中使用 Objectify-appengine 而不是 JDO 的意见 [关闭]

JPA基础