当前位置: 首页 > 面试题库 >

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

竺和洽
2023-03-14
问题内容

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

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

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

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

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

问题答案:

一些注意事项:

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

海事组织,我建议hibernate。

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

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

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

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

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



 类似资料:
  • 问题内容: 我对ORM这个概念很熟悉,几年前甚至在n.ibernate项目中使用nHibernate。但是,我没有跟上Java中ORM的话题,也没有机会使用任何这些工具。 但是,现在我可能有机会开始为我们的一个应用程序使用一些ORM工具,以尝试摆脱一系列旧式Web服务。 我很难说出JPA规范之间的区别,您从Hibernate库本身得到的东西以及JDO必须提供的东西。 因此,我知道这个问题有点开放,

  • 问题内容: 我了解Redis会列出,设置和散列 每种类型的优点/缺点是什么,以及在列表上使用集合的地方,或在集合上使用哈希的例子,等等 问题答案: 您要考虑的主要问题是您将要对其进行哪种操作……这比性能要重要。因为,如果没有可用的操作,它将无法正常工作。 首先,查看Redis命令文档,并确保可以找到可用的命令集。我在这里使用的大多数推理在通用编程中也是如此。例如,为什么要在Python中使用字典而

  • 本文向大家介绍比较一下 Spring Security 和 Shiro 各自的优缺点 ?相关面试题,主要包含被问及比较一下 Spring Security 和 Shiro 各自的优缺点 ?时的应答技巧和注意事项,需要的朋友参考一下 由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,包括 Spring Security 的 Starter ,使得在 Spring

  • 本文向大家介绍清楚浮动的几种方法,各自的优缺点相关面试题,主要包含被问及清楚浮动的几种方法,各自的优缺点时的应答技巧和注意事项,需要的朋友参考一下 1.父级div定义伪类:after和zoom 原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题。 优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,

  • 问题内容: 我目前正在开发一个大量使用JSF和IceFaces的Web应用程序。我们已经讨论了转移到另一个表示层的问题,我认为我将把讨论深入到SO中,然后看看专家们的想法。 我很好奇,是否有人可以权衡各种Java表示层技术的利弊。如果您仅与一个人一起工作,请说出为什么爱它或讨厌它。如果您曾经使用过几种方法,请给他们留下深刻的印象,以了解它们如何相互叠加。 我们正在考虑的技术是: 冰面 JSF(无I

  • 问题内容: 正在考虑使用Java创建自己的网站,并试图决定使用哪种框架。但是,快速搜索Java框架会返回50多种选择! 我的网站只是出于我自己的兴趣,一开始便会对其进行构建,但是,如果它变得流行,那么它具有一定的可伸缩性,或者至少能够为此进行重新设计,将是一件好事。 较流行的框架之间的主要区别是什么?在某些情况下是否有一个明显优于其他情况?例如,高流量的企业应用程序与低流量的小型应用程序。我也想知