总结篇-Hibernate和JPA关系
2017-05-27 21:11
375 查看
前一段时间搞一个项目用到了hibernate和jpa,但由于之前都没有很清晰地学习两者,所以在搞项目时花费了许多时间去查找资料,
现在由于某种需要,专门回过头来学习一下hibernate和jpa。
Hibernate 和 JPA的关系:
1.JPA
JPA全称:Java Persistence API
JPA通过JDK 5.0注解或XML描述 对象-关系表的映射关系,并将运行期的实体对象持久化到数据库里
JPA出现的两个原因:
(1)简化现有Java EE和Java SE 应用的对象的持久化的开发工作
(2)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兼容认证。
例如:
(1)实体对象的状态,在Hibernate有自由,持久,有力三种JPA里有new,managed,detached,removed,而这些状态都是一一对应的。
(2)flush方法也是对应的
3.JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是其实现。
那么Hibernate是如何实现与JPA的这种关系呢?
Hibernate主要通过三个组件来实现的,即hibernate-core,hibernate-entitymanager,hibernate-annotation。
(1)hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation 以及 Hibernate自身的特殊功能的annotation
(2)hibernate-core是Hibernate的核心实现,提供了Hibernate的所有核心功能
(3)hibernate-entitymanager 实现了标准的JPA,可以吧它看作hibernate-core和JPA间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。
总的来说:
JPA是规范,Hibernate是框架,JPA是持久化规范,而Hibernate实现了JPA。
现在由于某种需要,专门回过头来学习一下hibernate和jpa。
Hibernate 和 JPA的关系:
1.JPA
JPA全称:Java Persistence API
JPA通过JDK 5.0注解或XML描述 对象-关系表的映射关系,并将运行期的实体对象持久化到数据库里
JPA出现的两个原因:
(1)简化现有Java EE和Java SE 应用的对象的持久化的开发工作
(2)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兼容认证。
例如:
(1)实体对象的状态,在Hibernate有自由,持久,有力三种JPA里有new,managed,detached,removed,而这些状态都是一一对应的。
(2)flush方法也是对应的
3.JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是其实现。
那么Hibernate是如何实现与JPA的这种关系呢?
Hibernate主要通过三个组件来实现的,即hibernate-core,hibernate-entitymanager,hibernate-annotation。
(1)hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation 以及 Hibernate自身的特殊功能的annotation
(2)hibernate-core是Hibernate的核心实现,提供了Hibernate的所有核心功能
(3)hibernate-entitymanager 实现了标准的JPA,可以吧它看作hibernate-core和JPA间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。
总的来说:
JPA是规范,Hibernate是框架,JPA是持久化规范,而Hibernate实现了JPA。
相关文章推荐
- Hibernate Core,Annotations,JPA,EJB四者的关系
- Hibernate级联关系总结
- JPA与Hibernate的关系
- Hibernate 关系映射 总结整理
- Hibernate 关系映射 总结整理
- Hibernate/JPA 单表一对多关系映射
- Hibernate,JPA 对象关系映射之关联关系映射策略
- Hibernate 关系映射 收集、总结整理
- hibernate 流程及 几种关系总结
- Hibernate与Jpa的关系(1)
- Hibernate总结之二实体与表的映射关系
- Hibernate的学习总结(映射类之间的继承关系)
- Hibernate的学习总结(映射类之间的组合关系)
- Hibernate,JPA 的关系。
- JPA和Hibernate的关系
- JPA和Hibernate的关系1
- hibernate关系映射总结
- 使用JPA(Hibernate)中的问题总结
- hibernate关系映射总结篇
- Hibernate与Jpa的关系(2)