JPA与Hibernate的关系

本文详细介绍了JPA(Java Persistence API)及其与Hibernate的关系。JPA作为一种规范,旨在简化Java应用的对象持久化开发工作,而Hibernate作为JPA的实现之一,提供了强大的功能支持。文章还探讨了两者间的具体差异及如何通过Hibernate实现JPA。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JPA

JPA(Java Persistence API) -通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA的出现有两个原因:

  1. 简化现有Java EE和Java SE应用的对象持久化的开发工作;
  2. Sun希望整合对ORM技术,实现持久化领域的统一。

JPA提供的技术

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

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。

JPA和Hibernate之间的关系

JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。
那么Hibernate是如何实现与JPA 的这种关系的呢?
Hibernate主要是通过三个组件来实现的,hibernate-annotationhibernate-entitymanagerhibernate-core
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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值