jparepository example entre ejemplos diferencia data crudrepository java spring hibernate jpa spring-data-jpa

java - example - spring data vs hibernate



Cuál es la diferencia entre Hibernate y Spring Data JPA (2)

¿Cuáles son las principales diferencias entre Hibernate y Spring Data JPA? ¿Cuándo no debería usarse Hibernate o Spring Data JPA? Además, ¿cuándo puede la plantilla Spring JDBC funcionar mejor que HFPnate / Spring Data JPA?


Hay 3 cosas diferentes que estamos usando aquí:

  1. JPA: api de persistencia Java que proporciona especificaciones para persistir, leer, administrar datos de su objeto java a relaciones en la base de datos.
  2. Hibernate: hay varios proveedores que implementan jpa. Hibernate es uno de ellos. Entonces tenemos otro proveedor también. Pero si usa jpa con spring, le permite cambiar a diferentes proveedores en el futuro.
  3. Spring Data JPA: Esta es otra capa en la parte superior de jpa que proporciona la primavera para facilitarle la vida.

Así que vamos a entender cómo funcionan los datos de primavera jpa y spring + hibernate-

Spring Data JPA:

Supongamos que está utilizando spring + hibernate para su aplicación. Ahora necesita tener la interfaz e implementación de dao donde va a escribir la operación crud utilizando SessionFactory de hibernación. Supongamos que está escribiendo una clase de dao para la clase Empleado, mañana, en su aplicación, es posible que deba escribir una operación similar para cualquier otra entidad. Entonces, hay mucho código repetitivo que podemos ver aquí.

Ahora, los datos de Spring jpa nos permiten definir interfaces dao ampliando sus repositorios (crudrepository, jparepository) para que le proporcionen la implementación de dao en tiempo de ejecución. Ya no es necesario que escriba la implementación de dao. Así es cómo los datos de primavera jpa le facilitan la vida.


Hibernate es una implementación de JPA, mientras que Spring Data JPA es una abstracción de acceso de datos JPA. Spring Data ofrece una solución para las implementaciones personalizadas de GenericDao . También puede generar consultas JPA en su nombre a través de convenciones de nombre de método.

Con Spring Data, puede usar Hibernate, Eclipse Link o cualquier otro proveedor de JPA. Un beneficio muy interesante es que puede controlar los límites de transacción de manera declarativa utilizando la anotación @Transactional .

Spring JDBC es mucho más liviano y está destinado a las consultas nativas, y si solo pretendes usar JDBC solo, entonces es mejor que utilices Spring JDBC para manejar la verbosidad de JDBC.

Entonces, Hibernate y Spring Data son complementarios en lugar de competidores.