【发布时间】:2015-02-12 06:12:31
【问题描述】:
我已通过各种资源了解它们。重要的是:-
- 关于他们每个人的维基百科文章
- What's the difference between JPA and Hibernate?
这是我对它们的区别的理解。我不确定我对 JPA 与 ORM 的看法是否正确
ORM: 对象关系映射是将数据从面向对象语言转换为关系数据库的概念/过程,反之亦然 例如在 java 中,它是在反射和 jdbc 的帮助下完成的。
Hibernate:它是上述概念的实现。
JPA:它比 ORM 高出一步。它的高级 API 和规范,以便不同的 ORM 工具可以实现,因此它提供 开发人员可以灵活地将实现从一个 ORM 更改为另一个(例如,如果应用程序使用 JPA api 和 implementationaion 处于休眠状态。如果需要,将来它可以切换到 IBatis。但另一方面,如果应用程序直接锁定实现 没有 JPA 平台的休眠,切换将是一项艰巨的任务)
可以有或没有 JPA 规范的 ORM 实现。例如,根据这个 link 仅在休眠部分下 Hibernate 3.2 及更高版本提供了 Java Persistence API 的实现
【问题讨论】:
-
你是绝对正确的。 ORM 只是概念或映射 OO -> RMDBS 的名称。 JPA 是 Java Persistence API,被指定为 JavaEE 规范的一部分。 Hibernate 是实现或 API 之一。 JPA 有很多版本,不同版本的 Hibernate 实现了不同版本的 JPA API。
-
我不知道为什么它在发布的 5 秒内也收到了反对票。如果downvoter可以给我反馈,以便我下次可以改进,将不胜感激
-
@BoristheSpider 感谢。我对 JPA 的看法也正确吗?
-
大部分都在那里。 JPA 不是“高级”API,它只是 ORM 框架的规范。它与 Java Servlet API 或 Java Transaction API 等非常相似——都是 JavaEE 的一部分。 iBATIS 不是 JPA 实现。
-
“我不确定我对 JPA 与 ORM 的看法是否正确”暗示 我对 JPA 与 ORM 的看法是否正确? 所以我认为有一个问题,有些人喜欢我认为要投反对票。