springframework query org example data spring hibernate jpa spring-data spring-data-jpa

query - ¿Spring Data JPA es una implementación de JPA?



spring data jpa maven (1)

Estoy tratando de "realmente" entender Spring Framework. Tengo un buen entendimiento de Spring Core (DI) y Spring MVC.

Para la parte de datos, ahora me estoy centrando en Spring Data JPA. Según tengo entendido, JPA es una especificación estándar, para la cual existen múltiples implementaciones, siendo Hibernate la famosa.

Ahora, cuando comencé a usar Spring Data JPA, tenía la impresión de que Spring Data JPA es una implementación independiente de la especificación de JPA. Resultó que estoy equivocado.

Si entendí correctamente, Spring Data JPA es una capa de abstracción proporcionada por Spring, que utiliza internamente a otro proveedor de JPA (Ejemplo de Hibernación), por lo que típicamente es así:

Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB

¿Mi entendimiento es correcto? Si es así, ¿no es engañosa Spring Data JPA ? NO es un proveedor de JPA en sí mismo, es solo una capa de abstracción, que funciona sobre otro JPA provider .

¿No estoy seguro de si realmente entiendo el marco de Spring o es un marco complejo en conjunto?

¿Alguien por favor me puede ayudar a entenderlo?


No creo que esté mal llamado (descargo de responsabilidad: soy el líder del proyecto). Todos los proyectos de Spring Data enumeran la tienda o API en la que se basan en su nombre. Spring Data JPA es básicamente Spring Data para JPA, al igual que Spring Data MongoDB es Spring Data para MongoDB, al igual que Spring Batch es Spring para aplicaciones por lotes, Spring Integration es Spring para proyectos de integración.

Corrija su gráfica de dependencia para JPA:

Application -> Spring Data JPA -> JPA <- Hibernate -> JDBC -> DataSource -> — uses <- — implements

Lo mismo para MongoDB:

Application -> Spring Data MongoDB -> MongoDB Java driver -> MongoDB

Todavía me interesaría saber exactamente dónde tuvo la impresión de que Spring Data JPA es una implementación de JPA, ya que ni la página del proyecto ni la documentación de referencia lo indican en ninguna parte. De hecho, especialmente la página del proyecto es muy explícita sobre qué funcionalidad proporciona el proyecto. Además, podría ayudar estudiar la descripción del proyecto general , que intenta establecer un contexto fundamental para todos los módulos que contiene.