【问题标题】:If using EJB3 JPA , do I need hibernate?如果使用 EJB3 JPA ,我需要休眠吗?
【发布时间】:2012-01-27 19:46:59
【问题描述】:

我知道 JPA 只是一个标准,要使用它,您需要一个诸如 Hibernate3.2 之类的实现,我的问题是:EJB3 是否带有 JPA 的实现,或者我仍然需要诸如 hibernate 之类的实现来使用 EJB3 ? 如果你能指出任何有用的教程,那就太好了:)

谢谢

【问题讨论】:

  • 请注意,在 EJB 3.1 中,不再有 EJB3 JPA 这样的东西。 JPA 现在是一个完全独立的规范。

标签: java hibernate jakarta-ee jpa ejb-3.0


【解决方案1】:

如果容器支持 JPA,它会为您提供一个 API(EntityManager 和其他),您不必关心它是由什么实现的。所以不,你不必使用 Hibernate。一些容器将在下面使用 Hibernate,其他 EclipseLink 等。但从您的角度来看,您使用的 API 可以正常工作

【讨论】:

  • 除非您使用供应商特定的扩展。还有一些非常有用。
【解决方案2】:

如果您正在使用诸如 @Filter 之类的 Hibernate 功能,那么您应该使用 Hibernate 作为您的 JPA 提供程序。一些应用服务器(例如 JBoss)使用 Hibernate 作为它们的 JPA 提供者。

【讨论】:

    【解决方案3】:

    这取决于 Java EE 容器特定的实现。 JPA 更像是一个接口、规范,而 Hibernate 是一个自定义的 JPA 实现。

    Hibernate 与 JBoss 一起使用,Eclipselink 是 Glassfish 附带的另一个 JPA 实现的示例。但如果你愿意,你仍然可以使用 Hibernate + Glassfish。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 2013-06-19
      相关资源
      最近更新 更多