Spring Boot
└─ Spring Data JPA (Repository 추상화)
└─ JPA 스펙 (javax.persistence / jakarta.persistence)
└─ Hibernate (JPA 구현체, 기본값)
Spring Data JPA는 JPA 스펙 위에서 동작하고, Hibernate는 그 스펙의 구현체입니다. Spring Boot가 이 전체 버전 조합을 BOM으로 관리해줍니다.
| 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+ |
org.hibernate에서 org.hibernate.orm으로 변경됨.변경된 것들:
javax.persistence.* → jakarta.persistence.* (패키지명 전체 변경)spring.jpa.hibernate.use-new-id-generator-mappings 설정 제거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 호환 범위는 다음과 같음.