数据库面试题22JPA用过没有,介绍一下,它与Hibernate的区别是什么?

JPA(Java Persistence API)是 Java EE(现 Jakarta EE)的官方 ORM 标准规范,而 Hibernate 是一个实现了 JPA 规范的具体 ORM 框架。它们的关系类似于 JDBC 规范 和 MySQL JDBC 驱动的关系。


一、JPA 是什么?

  1. 定位
    JPA 是一套 Java 持久化标准接口(定义在 javax.persistencejakarta.persistence 包中),由 Java 社区(JSR)制定,目的是统一不同 ORM 框架(如 Hibernate、EclipseLink、OpenJPA)的操作方式。

  2. 核心接口

    接口 作用 对应 Hibernate 接口
    EntityManagerFactory 创建 EntityManager(线程安全) SessionFactory
    EntityManager 核心操作接口(非线程安全) Session
    EntityTransaction 管理事务 Transaction
    Query / TypedQuery 执行 JPQL 查询 Hibernate Query
    CriteriaBuilder 构建类型安全的查询 替代 Hibernate Criteria
  3. 主要特性

    • 基于注解或 XML 的实体映射(如 @Entity, @Table, @Id
    • 支持 JPQL(面向对象的查询语言)
    • 类型安全的 CriteriaQuery 动态查询
    • 实体生命周期管理(persist(), merge(), remove()
    • 一级/二级缓存支持

二、JPA 与 Hibernate 的核心区别

维度 JPA Hibernate
性质 官方标准规范(一组接口) 具体 ORM 实现框架
目的 统一 ORM 操作,避免厂商锁定 提供高性能、全功能的 ORM 解决方案
实现方式 需依赖实现库(如 Hibernate) 独立运行,直接操作数据库
API 包名 javax.persistence.* org.hibernate.*
查询语言 JPQL(标准化) HQL(功能更强大,兼容 JPQL)
原生特性 仅支持标准功能 额外提供:
- 增量更新(@DynamicUpdate
- 自定义类型(UserType
- 更灵活的缓存控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值