Cả **Hibernate** và **EclipseLink** đều là các triển khai (implementation) của **JPA (Java Persistence API)** - tiêu chuẩn ORM cho Java.
Bảng so sánh chi tiết
| Tiêu chí | Hibernate | EclipseLink |
|---|---|---|
| Mô tả chung | Triển khai JPA phổ biến nhất, phát triển bởi Red Hat. Nhiều tính năng mở rộng ngoài JPA. | Triển khai JPA mã nguồn mở của Eclipse Foundation. Chuẩn JPA 2.2. Một phần của EE4J. |
| Hỗ trợ JPA | Không triển khai đầy đủ JPA 2.2 nhưng có hầu hết tính năng + mở rộng riêng. | Triển khai đầy đủ JPA 2.2 chuẩn. |
| Native SQL Function | Không gọi trực tiếp native function trong JPQL. | Cho phép gọi native SQL function trực tiếp trong JPQL. |
| Batch Size | Hỗ trợ annotation @BatchSize. |
Không có annotation @BatchSize. |
| Boolean trong JPQL | JPQL không hiểu giá trị Boolean. | Hiểu được giá trị Boolean trong JPQL. |
| Độ thành熟/Document | Rất mature, tài liệu phong phú, cộng đồng lớn. | Ít mature hơn, tài liệu ít hơn. |
| Đóng gói | Single jar. | Jar đầy đủ + OSGi bundles cho từng component. |
Khi nào chọn Hibernate?
- Dự án Spring/Hibernate truyền thống
- Cần hiệu năng cao, caching phức tạp (L2 cache)
- Cần tài liệu, community support lớn
- Dùng các tính năng mở rộng của Hibernate
Khi nào chọn EclipseLink?
- Yêu cầu tuân thủ chuẩn JPA 2.2 chặt chẽ
- Cần gọi native SQL function trong JPQL
- Môi trường OSGi / modular
- Dự án Eclipse/EE4J stack
Lưu ý: Hibernate là lựa chọn mặc định của Spring Boot. EclipseLink là default của GlassFish/Payara.