【问题标题】:Difference between Hibernate library and Hibernate JPA libraryHibernate 库和 Hibernate JPA 库的区别
【发布时间】:2011-11-17 14:39:57
【问题描述】:

在您可以将 Hibernate 库添加到项目的屏幕中,有两个选项,Hibernate 和 Hibernate JPA。

两者有什么区别?谷歌搜索没有提供解释。

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    我发现这可以提供一个很好的解释。 http://elope.wordpress.com/2007/09/06/difference-between-jpa-and-hibernate/

    来自上面的博客: 所以如果我需要简明扼要的话:

    a) JPA 是您的代码应该使用的 Persistence Api。

    b) JPA Api 会将调用传递给实际的持久性提供程序(例如:Hibernate/TopLink)以完成实际工作。

    c) 如果您从性能方面来看,它将取决于实际的持久性提供程序(Hibernate/TopLink),而不是 JPA 作为它的包装层。

    d) 如果你从代码依赖的角度来看,JPA 更有意义,因为你的代码依赖于标准的 Java Api。

    e) 如果您使用过 Hibernate,那么您会发现 JPA 中缺少某些功能,例如条件查询等。这并不意味着您不能在应用程序中编写条件查询,您需要从 JPA 获取 Session 对象实体管理器,现在你和 hibernate 项目一样好。

    但是现在您的代码依赖于特定的 impl (Hibernate),接下来您可以看到 JPA (2.0) 中添加了更多内容

    f) 你是否应该使用 JPA:我认为你应该使用,API 是干净的,虽然不是你需要的一切都是他们的,但这是向前迈出的一大步。

    【讨论】:

      【解决方案2】:

      我不知道您的“屏幕”是什么意思,但通常您可以直接使用 Hibernate(Hibernate API)或作为JPA 提供程序。由于 JPA 是一种标准 API,因此可以针对该 API 进行编码并在实现之间切换(Hibernate、EclipseLink、OpenJPA,...)。使用 Hibernate API 时,您会受到此限制,但您可以利用 JPA 未标准化的功能。

      【讨论】:

        猜你喜欢
        • 2013-02-06
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 2010-10-31
        • 2014-10-15
        • 2012-04-10
        相关资源
        最近更新 更多