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

EJB 3或Hibernate 3

凌征
2023-03-14
问题内容

关于将由完整的Java EE应用程序服务器(例如GlassFish)提供服务的Java EE Web应用程序,这是最佳的 ORM 解决方案吗?
EJB 3Hibernate 3 为什么?


问题答案:

这两个完全不同。

EJB3是一个组件html" target="_blank">模型,与ORM直接无关。它确实有助于轻松管理事务,并使您可以轻松地从JPA访问实体管理器,JPA是Java
EE中的标准化ORM解决方案。

Hibernate (3)确实是一种ORM解决方案,并且碰巧它实现了JPA。

因此,更逻辑的问题是使用标准化的JPA接口还是直接使用Hibernate核心API。接下来的问题可能是是独立使用JPA还是与EJB 3结合使用。

答案在某种程度上取决于您的确切需求,但是通常将JPA与EJB
3结合使用是最简单的解决方案。独立使用JPA或Hibernate需要更多冗长的代码,并且您必须手动管理事务,这可能很麻烦。

JPA vs Hibernate是另一场辩论。JPA具有标准化接口的好处,因此更多的开发人员可能会熟悉它。另一方面,本地Hibernate
API始终是JPA的超集,因此提供了更多功能。

通常,开发人员主要将代码基于JPA,然后在有意义的地方使用一些特定于Hibernate的注释或API调用。在99.99%的情况下,支持使用这种混合API。

另请注意,Glassfish与捆绑在一起EclipseLink,而不与Hibernate
捆绑在一起。EclipseLink可与Hibernate相提并论,但早在十多年之前就已经有了。Hibernate从EclipseLink(当时称为TopLink)中获得了很多收益。



 类似资料:
  • 问题内容: 在hibernate状态下,EJB3和Spring 3有很多共同点。我需要找出在哪里可以将Spring框架与hibernate一起使用,而不是EJB3,反之亦然。 问题答案: 您可以互换使用它们。 如果使用EJB3,则必须拥有完整的Java EE,EJB3应用服务器。有些是免费的,有些不是。 如果使用Spring 3,则需要在CLASSPATH中包含Spring JAR,但是不需要完整

  • Enterprise Java Beans (EJB) 3.0 对 EJB 规范进行了深入改革和简化。EJB 3.0 的目标是简化开发,促进测试驱动开发,更专注于编写纯 Java 对象(POJOs) 而不是复杂的 EJB APIs。EJB 3.0 完全认同 JDK 5.0 引入的 Java Annotations,使用 Hibernate 作为 EJB 3.0 Java Persistence 引

  • 我遇到此错误,不知道如何修复: 这是: @无状态的公共类AlertFacade扩展了AbstractFacade{@PeristextContext(unitName="flams_pu")私有EntityManager em; 我在JSF托管bean中使用。 EJB应该是可序列化的吗?我不明白。请帮帮忙

  • JBoss EJB3 Plugin 是可执行的 JAR,是最新 EJB3 二进制包(依赖项目)现有 JBoss AS 安装补丁。此版本只支持最新的 JBoss AS 5.x。 要求: Ant (1.6.5) Java - JDK 1.5 及其以上版本 JBoss AS-5.x

  • 该plugin提供struts的Action及Interceptor对EJB组件及Resource的无侵入式依赖注入(DI)。 安 装方法: 将 struts-ejb3-plugin.jar 考入 /WEB-INF/lib 目录中。这时使用的为plugin的默认配置,该配置为 cn/agrael/struts/plugin/ejb3/default-struts-ejb3-plugin.prope

  • 问题内容: 我对JSF2 + Spring + EJB3的混合使用或它们的任何组合感到有些困惑。我知道Spring的主要特征之一就是依赖注入,但是有了JSF托管的Bean,我可以使用@ManagedBean和@ManagedProperty注释,并且可以获得依赖注入功能。对于EJB3,我更困惑何时与JSF一起使用它,或者甚至有理由使用它。 那么,在哪种情况下使用Spring + JSF2或EJB3

  • 问题内容: 我在EJB3无状态会话Bean中使用CMT。另外,我还创建了自己的具有注释“ @ApplicationException(rollback = true)”的异常。 要回滚事务时是否必须使用“ context.setRollbackOnly()”? 我可以通过在bean的public方法内抛出异常来回滚事务吗? 如果是这样(对Q#2的回答是“是”),我是否必须通过在方法中声明异常来将异

  • 问题内容: 我已经了解到,如果在Spring上下文中使用EJB,我将获得与在“纯” EJB3环境中使用EJB一样的所有好处,这是真的吗?我已经用谷歌搜索,但是找不到明确的答案。 例如,假设我有一个会话Bean,它会更新数据库中的某些表,并引发系统异常。在“纯” EJB3环境中,事务将回滚。例如,如果我使用Spring使用@Autowire这个bean,那么Spring是否像EJB3容器一样处理事务