java - JPA vs ORM vs Hibernate?

标签 java hibernate jpa orm

我已通过各种资源了解它们。重要的是:-

  1. 关于他们每个人的维基百科文章
  2. What's the difference between JPA and Hibernate?

这是我对它们的区别的理解。我不确定我对 JPA 与 ORM 的看法是否正确

  1. ORM: 对象关系映射是将数据从面向对象语言转换为关系数据库的概念/过程,反之亦然 例如在 java 中,它是在反射和 jdbc 的帮助下完成的。

  2. Hibernate:它是上述概念的实现。

  3. JPA:它比 ORM 高出一步。它的高级 API 和规范,以便不同的 ORM 工具可以实现,因此它提供 开发人员可以灵活地将实现从一个 ORM 更改为另一个(例如,如果应用程序使用 JPA api 和 implementationaion 处于 hibernate 状态。如果需要,将来它可以切换到 IBatis。但另一方面,如果应用程序直接锁定实现 没有 JPA 平台的 hibernate ,切换将是一项艰巨的任务)

可以有或没有 JPA 规范的 ORM 实现。例如根据这个 link仅在 hibernate 部分下 Hibernate 3.2 及更高版本提供了 Java Persistence API 的实现

最佳答案

  1. ORM 是获取面向对象数据并映射到关系数据存储(例如 RDBMS 中的表)的方法

  2. JPA 是 Java EE 中 ORM 的 Java EE 标准规范。

  3. JPA 的引用实现是 EclipseLink。如果您没有显式配置提供程序,则在幕后使用 EclipseLink。

  4. Hibernate 是 JPA 规范的另一种实现,您可以使用标准的 JPA API 并将您的应用程序配置为使用 Hibernate 作为规范的提供者。

  5. Hibernate 还提供了超出 JPA 规范中指定的 ORM 功能的超集。这意味着,虽然它提供了 JPA API 的实现,但它还提供了超出 JPA 指定的更多功能。

关于java - JPA vs ORM vs Hibernate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462185/

相关文章:

java - 在 LWJGL 中渲染纹理四边形是渲染白色吗?

JavaScript 文件无法在 Eclipse Web 应用程序中加载和执行

java - 如何禁用 Dropwizard 健康检查的日志记录

java - JPA 查询问题

java - 没有版本字段的 JPA LockModeType

java - java jpa生成值异常

Java swing 应用程序即服务

java - 使用嵌入对象(元组)进行 Hibernate Criteria 选择

java - 通过hibernate插入2.对象后出现Hsql错误

java - 在 hibernate 中检索子属性时出错