JPA与Hibernate的关系

1.JPA

JPA全称: Java Persistence API
  JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
  JPA的出现?
  JPA的出现有两个原因:
  其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;
  其二,Sun希望整合对ORM技术,实现持久化领域的统一。

1.1.JPA提供的技术
  (1)ORM映射元数据
  JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持
  久化到数据库表中;
  (2)JPA 的API
  用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解
  脱出来。
  (3)查询语言
  通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

2. Hibernate

JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个。从功能上来说,JPA现在就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的 JPA(Java  Persistence API) 兼容认证。

例如:

(1)实体对象的状态,在Hibernate有自由、持久、游离三种,JPA里有new,managed,detached,removed,而这些状态都是一一对应的。

(2)flush方法,都是对应的,

(3)Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了  manager

3.  JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。

那么Hibernate是如何实现与JPA 的这种关系的呢?

Hibernate主要是通过三个组件来实现的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

(1)hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation以及  Hibernate自身特殊功能的annotation。

(2)hibernate-core是Hibernate的核心实现,提供了Hibernate所有的核心功能。

(3)hibernate-entit

ymanager实现了标准的JPA,可以把它看成hibernate-core和JPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。

  总的来说,JPA是规范,Hibernate是框架,JPA是持久化规范,而Hibernate实现了JPA。

时间: 2024-10-22 20:08:52

JPA与Hibernate的关系的相关文章

JPA和Hibernate的关系

JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分. Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集. JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现.那么Hibernate是如何实现与JPA的这种关系的呢. Hibernate主要是通过三个组件来实现的,及hibernate-annotation.hibernate-entitymanager

spring data jpa hibernate jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现. 既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用.虽然应用程序可以面向接口编程,但JPA底层一定需要某种JPA实现,否则JPA依然无法使用.从笔者的视角来看,Sun之所以提出J

SpringData Jpa、Hibernate、Jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架--因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现. 既然JPA作为一种规范--也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用.虽然应用程序可以面向接口编程,但JPA底层一定需要某种JPA实现,否则JPA依然无法使用. 从笔者的视角来看,Sun之所以提出

Spring Data JPA Vs Hibernate JPA Vs JPA

前言 从文章的标题,就可以清晰地了解到,本文是来辨析三个容易将新手弄糊涂的技术名词.如果,你一眼看过去就知道这三个名词的区别及关系,那么,这篇文章你可以不用继续读下去了:除非,你是想要看看我有什么解释的不对,来纠错的(来找茬,哈哈),也欢迎留言. 名词解释 JPA(Java Persistence API,Java持久化API),它是一个关于如何处理对象关系映射(object-relational mappings)的规范:即,定义了映射Java中的Object到关系数据库Table的标准流程.

[转帖]JPA和Hibernate到底是什么关系???

JPA和Hibernate到底是什么关系??? https://www.cnblogs.com/mosoner/p/9494250.html (文章借用了其他几篇博客中的内容,因为是初学者,许多概念性的关系自己不能完全理解,就将大神的搬了过来,如有不当,可留言,本人自会妥善处理,谢谢) 在学习框架的过程中,发现学的东西很多,但是感觉他们之间的联系区别都不是很了解,知道JPA可以去实现持久化数据到数据库当中,Hibernate也有这样的功能,总以为他们之间是一种平级的关系,拥有同样的作用,是一种可

JPA和Hibernate的区别

JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分. Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集. JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接 口,Hibernate是实现.那么Hibernate是如何实现与JPA的这种关系的呢.Hibernate主要是通过三个组件来实现的,及 hibernate-annotation.hibernate-entitymanage

JPA与EJB3的关系

JPA是基于Java持久化的解决方案,主要是为了解决ORM框架的差异,它的出现在某种程度上能够解决目前ORM框架之间不能够兼容的问题,对开发人员来说,能够更好的在JPA规范下进行系统开发. JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.JPA吸取了目前Java持久化技术的优点,旨在规范.简化Java对象的持久化工作. 如图1.3说明了JPA在系统架构中的作用,使用JPA持久化对象,而不是依赖于某一个OR

JPA入门例子(采用JPA的hibernate实现版本) 转

JPA入门例子(采用JPA的hibernate实现版本) jpahibernate数据库jdbcjava框架(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.JPA吸取了目前Java持久化技术的优点,旨在规范.简化Java对象的持久化工作.使用JPA持久化对象,并不是依赖于某一个ORM框架. 为什么要使用JAP? 在说为什么要使用JPA之前,我们有必要了解为什么要使用ORM技术. OR

简述 JPA 与 Spring Data JPA 与 Hibernate

1.JPA是什么?以及相关概述 JPA的是 Java Persistence API 的简写,是Sun官方提出的一种ORM规范! Sun提出此规范有2个原因: 1.简化现有Java EE和Java SE应用开发工作. 2.Sun希望整合ORM技术,实现天下归一. 重点在于,JPA是一套规范,而不是具体的ORM框架. 故Hibernate.TopLink 等ORM框架 都是JPA的实现,其中Hibernate已获得Sun的兼容认证. JPA的标准的定制是hibernate作者参与定制的,所以JPA