lenguaje - Qué proveedor se debe utilizar para la implementación de la API de persistencia de Java(JPA)
lenguaje de persistencia de java (1)
Quiero usar la API de persistencia de Java (JPA) para mi aplicación web.
Hay implementaciones de JPA populares como Hibernate , Toplink y EclipseLink . ¿Qué implementación es una buena elección y por qué?
Cuando se desarrolló la API de persistencia de Java (API) , se popularizó muy rápido. JPA describe la gestión de datos relacionales en aplicaciones que utilizan Java.
JPA (Java Persistence API) es una interfaz para que los proveedores de persistencia implementen.
Hibernate es una de esas implementaciones de JPA. Cuando utiliza Hibernate con JPA, en realidad está utilizando la implementación de Hibernate JPA.
JPA normalmente define los metadatos a través de anotaciones en la clase Java. Alternativamente a través de XML o una combinación de ambos. Una configuración XML sobrescribe las anotaciones.
Implementaciones JPA:
- Hibernate : El más avanzado y ampliamente utilizado. Preste atención a la ruta de clase porque se utilizan muchas bibliotecas, especialmente cuando se utiliza JBoss. Soporta JPA 2.1.
- Toplink : solo es compatible con las especificaciones JPA básicas. (Esta era la versión gratuita de Oracle de la implementación de JPA)
- EclipseLink : se basa en TopLink y es la ruta prevista para la persistencia de Oracle y TopLink. Soporta JPA 2.1
- Apache OpenJPA : la mejor documentación pero parece muy buggy. Implementación de código abierto para JPA. Soporta JPA 2.0
- DataNucleus : código abierto, bien documentado (licencia de Apache 2), también es un proveedor de JDO. Soporta JPA 2.1
- ObjectDB : bien documentado
- CMobileCom JPA : implementación liviana de JPA 2.1 para Java y Android.
Otros enfoques son:
- JDBC simple
- ORM con Hibernate: Hibernate ahora también es un gran apoyo para JPA
- iBatis: El proyecto se movió a MyBatis ( enlace )
- JDO
Motivación para Hibernate como mi elección JPA:
- Proyecto maduro:
- Más avanzado
- Bien documentada
- Sub proyectos de Hibernate útiles.
- Herramientas de hibernación: generación automática de código y generación de base de datos.
- Validación de hibernación: capacidades de especificación de bean. Se integra con JPA2
- Búsqueda de hibernación: poderosa búsqueda de texto completo en objetos de dominio
- Comunidad activa
- Gran comunidad de desarrollo
- Ampliamente utilizado
Hibernate se convirtió en una implementación de código abierto de JPA muy rápido después de que se publicara la especificación final. Tiene un rico conjunto de características y genera nuevas características rápidamente, porque un proceso de desarrollo de código abierto tiende a ser más rápido que un proceso de la comunidad Java.