| JPA | Hibernate | Spring Data JPA | |
|---|---|---|---|
| Là gì | Specification (JSR-338) | Implementation của JPA | Abstraction trên JPA |
| Ai định nghĩa | Jakarta EE | Red Hat | Spring |
- JPA = chuẩn (interface, annotation, JPQL) — chỉ định nghĩa, không chạy được một mình; nhiều implementation: Hibernate, EclipseLink.
- Hibernate = JPA provider phổ biến nhất; thêm HQL, L2 cache, batch processing.
- Spring Data JPA = abstraction phía trên — khai báo interface repository, Spring sinh implementation tự động (query method, pagination; xem câu Spring Data JPA & @Repository).
Chuỗi phụ thuộc: app code → Spring Data JPA → JPA API → Hibernate → JDBC → DB. Starter spring-boot-starter-data-jpa kéo sẵn Spring Data JPA + Hibernate + HikariCP.