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

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

闻人业
2023-03-14
问题内容

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

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

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

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


问题答案:

我想知道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)。

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



 类似资料:
  • 本文向大家介绍网络框架有哪些?他们之间的区别是什么?相关面试题,主要包含被问及网络框架有哪些?他们之间的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 Xutils 这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框架依赖非常的严重,一旦这个框架出现问题,那么对项目

  • 问题内容: 所以我对Angular js vs Express js的目标有些困惑。根据我的理解,我们使用Node.js来提供Angular js的服务,但是我们并不完全受限于/强制使用Node.js来提供服务。另一方面,Express js似乎完成了与更传统的MVC框架类似的任务。 那么Angular Js是一种非特定于服务器的MVC框架吗?这是否限制了Angular js后端服务器功能或易用性

  • 问题内容: 您能帮忙解释一下什么是带阴影的罐子,有用吗?还有什么是超级罐子。 问题答案: 我将首先解释什么是超级JAR,因为这将支持阴影说明。 超级JAR是包含多个JAR(或更常见的是,其他多个JAR本身)的内容的JAR。 您的应用程序几乎肯定会使用其他软件包,并且这些软件包可能以JAR的形式提供。使用Maven时,这些依赖关系表示如下: 在运行时,您的应用程序将期望在其类路径中找到此JAR中包含

  • 问题内容: 我找不到有关此主题的大量信息。有人可以解释一下 Hibernate 和vs 之间的区别吗 问题答案: 调用没有多大意义,因为调用将假定已在进行事务,因此检索已在进行中的事务。您基本上是说,开始应该已经进行的此事务。 如果不存在一个新事务,它将开始一个新事务,或者将使用一个现有事务来开始指定的工作单元。 == 有关更多信息,建议您查看适用于您的Hibernate版本的Hibernate文

  • 问题内容: 但没人回答我的下一个问题。经典的hibernate方法使用和JPA 实现之间有什么区别?我听说此JPA实现使用并像包装器一样工作,这是真的吗? 问题答案: 确实。 JPA只是一个API,允许您从使用的持久层中进行抽象。Hibernate提供了充当接口的实现,它使用与Hibernate 相同的基础方法。 这个想法是,例如,您可以将实现切换到Eclipse Link,而不必更改任何源代码。

  • 问题内容: 我正在使用Java实现RSA加密程序。现在我正在使用 素数。这是产生的随机数。我需要测试各种加密速度。 我的问题是: 使用什么算法? 上面的算法与其他算法(例如Rabin-Miller,Fermats,Lucas-Lehmer)有什么区别? 谢谢。 问题答案: 的可能素数方法同时使用Miller-Rabin和Lucas-Lehmer算法来测试素数。 请参阅内部方法。