Spring Data JPA 和 Hibernate 是 Java 开发中两个常见的 ORM(对象关系映射)工具,它们之间既有关系也有区别。

一、关系

  1. Spring Data JPA 是基于 JPA 的抽象框架
    Hibernate 是 JPA 的一种实现。Spring Data JPA 则是对 JPA(Java Persistence API)规范的一种封装与扩展。
  2. Spring Data JPA 通常内部默认使用 Hibernate 作为 JPA 实现
    当你用 Spring Boot + Spring Data JPA 搭项目时,默认就是用 Hibernate 来实现 JPA。

二、区别

对比项Spring Data JPAHibernate
类型框架(对 JPA 的封装)框架(JPA 的实现之一)
定位简化 JPA 开发,提供自动化的 Repository 层实现提供 ORM 映射与 JPA 规范实现
是否实现 JPA,它基于 JPA,不是 JPA 实现,是 JPA 的官方实现之一
功能提供 CrudRepository, JpaRepository 等接口,减少模板代码提供底层实体映射、SQL 生成、缓存管理等核心功能
与 Spring 集成深度集成,支持自动注入 Repository,Query DSL,分页排序等通常作为底层依赖使用
使用难度更简洁、自动化程度高更灵活,功能更强,但需要写更多配置和代码

三、总结一句话

Hibernate 是一种 JPA 实现,而 Spring Data JPA 是对 JPA 的封装,通常底层就用的就是 Hibernate。