一尘不染

Hibernate vs JPA vs JDO-各自的优缺点?

hibernate

我对ORM这个概念很熟悉,几年前甚至在n.ibernate项目中使用过nHibernate。但是,我没有跟上Java中ORM的话题,也没有机会使用任何这些工具。

但是,现在我可能有机会开始对我们的一个应用程序使用一些ORM工具,以尝试摆脱一系列旧式Web服务。

我很难说出JPA规范之间的区别,您从Hibernate库本身获得的收益以及JDO必须提供的收益。

因此,我知道这个问题有点开放,但是我希望就以下问题得到一些意见:

  • 各自的优缺点是什么?
  • 您对新项目有何建议?
  • 在使用一个框架与另一个框架时是否存在某些条件?

阅读 488

收藏
2020-06-20

共1个答案

一尘不染

一些注意事项:

  • JDO和JPA都是规范,而不是实现。
  • 这个想法是,如果您将代码限制为仅使用标准JPA,则可以交换JPA实现。(适用于JDO的同上。)
  • Hibernate可以用作JPA的一种实现。
  • 但是,Hibernate提供了本机API,具有超越JPA的功能。

海事组织,我建议hibernate。


对于 需要 使用特定于Hibernate的功能时应采取的措施,已有一些意见/问题。有很多方法可以解决这个问题,但是我的建议是:

  • 如果您不担心供应商合作的前景,请在Hibernate,其他JPA和JDO实现之间做出选择, 包括 在决策过程中使用各种特定于供应商的扩展。

  • 如果您对供应商捆绑的前景感到担心,并且不能不借助供应商特定的扩展而使用JPA,则不要使用JPA。(适用于JDO的Ditto)。

在现实中,你可能需要权衡 多少 你被厂商担心搭配与 多少 ,你需要这些供应商特定的扩展。

还有其他一些因素,例如您/您的员工对相关技术的了解程度,产品在许可方面的成本,以及您相信谁会对JDO和JPA将来发生的事情有一个故事。

2020-06-20