java - Hibernate 和 JPA 之间有什么区别?

标签 java hibernate jpa jakarta-ee jpa-2.0

<分区>

当我在大学学习网络编程时,他们告诉我们 Hibernate。

我们使用了一段时间,我什至有机会在一家公司的真实场景中使用它近 8 个月。现在我完全切换到 Java EE 6,我使用 JPA 来满足我的 ORM 需求。

我已经用了几个月了,但我真的不明白它们之间有什么区别。为什么有人说一个或另一个更好或更坏?我在两者中进行映射和注释的方式几乎相同。

也许你能解决我的一些疑惑:

  • 各自的优缺点是什么?

  • Hibernate 是使用 JPA 还是相反(它们是否相互依赖)?

  • 从特性的角度,一个有哪些特性是另一个没有的?

  • 两者之间还有其他区别吗?

最佳答案

JPA(Java Persistence API)是一种 API,JPA 2.0 属于 JSR 317 组。基本上,它是一个通过使用 ORM(对象关系映射)实现数据持久化来管理关系数据的框架。

Hibernate 是一个 ORM 库,可将您的 POJO/JavaBeans 映射到您的数据持久性。 ORM 和 JPA 都有对象/关系元数据(XML、注释),用于将 POJO 映射到数据库表。

Does Hibernate uses JPA or the other way around (Do they depend on each other)?

Hibernate 3 现在支持 JPA 2.0。 JPA 是使用对象模型描述关系数据的关系和管理的规范。由于 JPA 是一个 API,因此 Hibernate 实现了这个 API。您所要做的就是使用 JPA API 类/接口(interface)编写您的程序,将 Hibernate 配置为 JPA 资源,瞧,您已经运行了 JPA。

What are the advantages and disadvantages of each?

优点:

  • 避免使用低级 JDBC 和 SQL 代码。
  • 它是免费的(例如用于 JPA 的 EclipseLink)。
  • JPA 是 EJB3 和 Java EE 的标准和一部分。

这就是我对 Hibernate 的了解。

关于java - Hibernate 和 JPA 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678883/

相关文章:

java - JPA OneToMany 在插入另一行时删除第一行(在多方)

java - 删除 OneToMany 关系中的实体

java - 关于MyBatis sqlMapGenerator自动生成的问题

java - Spring Data JPARepository : How to conditionally fetch children entites

Java Spring - 仅保存(POST)来自 ManyToOne 关系的 id

java - 使用 Java 泛型的 Hibernate 映射异常

java - 使用 CriteriaQuery 时如何限制结果

java - 用java解码url

java - 如何将两个或多个确认对话框合并到一个确认对话框中?

java程序无法读取字符串