一尘不染

hibernate与其他框架或规范之间的区别/相似之处是什么?

hibernate

我想知道Hibernate和Java EE 5中的简单持久性之间的区别/相似之处吗?

我不清楚Hibernate是否实现Java EE 5持久性实现,或者它是否是完全不同的后端系统数据表示方法。

我对Hibernate及其与Java EE 5教程中有关Java持久性的概念的关系感到困惑…您能否阐明Hibernate在实体和EJB上下文中的作用?

另外,我想知道其他方法(框架),例如JPA或Spring …


阅读 281

收藏
2020-06-20

共1个答案

一尘不染

我想知道Hibernate和Java EE 5中的简单持久性之间的区别/相似之处吗?

Java EE 5 的标准化持久性 API 是JPA 1.0,是EJB 2 CMP,JDO,Hibernate和TopLink
API和产品的统一版本。Hibernate是一个早于JPA的ORM框架,并且对JPA的规范产生了重大影响(Hibernate的创建者是JPA背后的专家组的成员)。请记住,JPA只是一个API,您需要一个JPA
实现 才能使用它。

我不清楚Hibernate是否实现Java EE 5持久性实现,或者它是否是完全不同的后端系统数据表示方法。

是的,Hibernate通过 Hibernate EntityManager 项目(依赖于 Hibernate Core
)提供了JPA的实现(并且对其进行了扩展,Hibernate是JPA的超集)。

我对Hibernate及其与Java EE
5教程中有关Java持久性的概念的关系感到困惑…您能否阐明Hibernate在实体和EJB上下文中的作用?

Hibernate可用作JPA持久性提供程序,即用作实际上持久EJB 3实体的代码(JPA规范是1.0版中EJB 3.0规范的一部分,现在是单独的规范)。

另外,我想知道其他方法(框架),例如JPA或Spring …

Spring不是持久性框架,Spring是IoC容器,它不能与Hibernate竞争。

Hibernate的JPA兼容替代方案包括TopLink Essentials(Java EE 5中的RI),EclipseLink(也是Java EE
6中的JPA 2.0的RI),OpenJPA,DataNucleus。

持久性的其他选择包括JDO(另一个标准化的持久性API),iBATIS(不是ORM,它更是一个数据映射器),JDBC(低级API)。

查看先前的答案)以获取概述和一些历史背景。

2020-06-20