JPA vs ORM vs Hibernate?

时间:2014-12-13 18:25:15

标签: java hibernate jpa orm

我通过各种资源了解了它们。进口商是: -

  1. 关于他们每个人的维基百科文章
  2. What's the difference between JPA and Hibernate?
  3. 这是我对什么是差异的理解。我不确定我对JPA vs ORM是否正确

    1. ORM:对象关系映射是将数据从面向对象语言转换为关系数据库的概念/过程,反之亦然 例如在java中,它借助于反射和jdbc完成。

    2. Hibernate:它是上述概念的实现。

    3. JPA:它比ORM高出一步。它的高级API和规范,以便不同的ORM工具可以实现它提供 开发人员可以灵活地将实现从一个ORM更改为另一个ORM(例如,如果应用程序使用JPA api和实现 是休眠。将来,如果需要,它可以切换到IBatis。但另一方面,如果应用程序直接锁定实现 没有JPA平台的Hibernate,switiching将是一项艰巨的任务)

    4. 可以使用/不使用JPA规范进行ORM实现。例如,仅在hibernate部分下的link Hibernate 3.2及更高版本提供了Java Persistence API的实现

2 个答案:

答案 0 :(得分:27)

  1. ORM是采用面向对象数据并映射到关系数据存储(例如RDBMS)的方法

  2. Hibernate是JPA的一个实现,使用ORM技术。

  3. JPA是Java EE中ORM的EE标准规范。 Hibernate也是本规范的一个实现,因为您可以使用标准的JPA API并配置您的应用程序以使用Hibernate作为规范的提供者。

  4. Hibernate提供的功能也是JPA规范中指定的ORM功能的超集。这意味着,虽然它提供了JPA API的实现,但它还提供了JPA指定的更多功能。

答案 1 :(得分:1)

你理解中唯一的错误是

  

它比ORM高出一步

快速说明一下,以javax.persistence开头的库与JPA相关联。您应该尽可能优先于Hibernate Libraries。因为这些是便携式的。但是,你会在Hibernate中获得一些额外的功能,在这些精确的情况下,请随意使用Hibernate。