계층 구조

Spring Boot
  └─ Spring Data JPA   (Repository 추상화)
       └─ JPA 스펙 (javax.persistence / jakarta.persistence)
            └─ Hibernate   (JPA 구현체, 기본값)

Spring Data JPA는 JPA 스펙 위에서 동작하고, Hibernate는 그 스펙의 구현체입니다. Spring Boot가 이 전체 버전 조합을 BOM으로 관리해줍니다.


Spring Boot 버전별 기본 Hibernate 버전

Spring Boot Spring Framework Spring Data JPA Hibernate JPA 스펙 Java
2.1.x 5.1 2.1.x 5.3 2.2 8+
2.2.x 5.2 2.2.x 5.4 2.2 8+
2.3.x 5.2 2.3.x 5.4 2.2 8+
2.4.x 5.3 2.4.x 5.4 2.2 8+
2.5.x 5.3 2.5.x 5.4 2.2 8+
2.6.x 5.3 2.6.x 5.6 2.2 8+
2.7.x 5.3 2.7.x 5.6 2.2 8+
3.0.x 6.0 3.0.x 6.1 3.0 (Jakarta) 17+
3.1.x 6.0 3.1.x 6.2 3.0 17+
3.2.x 6.1 3.2.x 6.4 3.1 17+
3.3.x 6.1 3.3.x 6.5/6.6 3.2 17+
4.0.x 7.0 4.0.x 7.x 3.2 21+

핵심 분기점 2개

1. Spring Boot 2.x → 3.x (가장 큰 변화)

변경된 것들:

2. Spring Boot 2.1 — Hibernate 5.3 채택

Spring Boot 2.1은 Hibernate 5.3으로 업그레이드되면서 JPA 의존성이 org.hibernate.javax.persistence:hibernate-jpa-2.1-api에서 javax.persistence:javax.persistence-api로 변경됨.


Spring Framework와 Hibernate 직접 호환 관계

Spring Framework 버전별 Hibernate 호환 범위는 다음과 같음.