Spring Boot: diferencia entre CrudRepository y JpaRepository

Spring Boot está construido en la parte superior del resorte y contiene todas las características del resorte. Y se está convirtiendo en el favorito de los desarrolladores en estos días debido a su rápido entorno listo para producción que les permite concentrarse directamente en la lógica en lugar de luchar con la configuración y la instalación. Spring Boot es un marco basado en microservicios y crear una aplicación lista para producción lleva muy poco tiempo.

Repositorio CRUD 

Hay una interfaz disponible en Spring Boot llamada CrudRepository que contiene métodos para operaciones CRUD. Proporciona una operación Crud genérica en un repositorio. Se define en el paquete org.springframework.data.repository y amplía la interfaz Spring Data Repository. Si alguien quiere usar CrudRepository en la aplicación Spring Boot, debe crear una interfaz y ampliar la interfaz de CrudRepository. 

Sintaxis:

public interface CrudRepository<T, ID> extends Repository<T, ID>

Dónde:

  • T: tipo de dominio que administra el repositorio (generalmente el nombre de clase de la entidad/modelo)
  • ID: Tipo de id de la entidad que administra el repositorio (Generalmente la clase contenedora de su @Id que se crea dentro de la clase Entidad/Modelo)

Ejemplo:

public interface DepartmentRepository extends CrudRepository<Department, Long> {}

JpaRepositorio 

JpaRepository es una extensión específica de JPA (API de persistencia de Java) de Repository. Contiene la API completa de CrudRepository y PagingAndSortingRepository . Por lo tanto, contiene API para operaciones CRUD básicas y también API para paginación y clasificación. 

Sintaxis:

public interface JpaRepository<T,ID> extends PagingAndSortingRepository<T,ID>, QueryByExampleExecutor<T>

Dónde:

  • T: tipo de dominio que administra el repositorio (generalmente el nombre de clase de la entidad/modelo)
  • ID: Tipo de id de la entidad que administra el repositorio (Generalmente la clase contenedora de su @Id que se crea dentro de la clase Entidad/Modelo)

Ejemplo:

public interface DepartmentRepository extends JpaRepository<Department, Long> {}

Interfaz de repositorio de datos de Spring

Aquí, en la siguiente imagen, Repository, CrudRepository y PagingAndSortingRepository pertenecen a Spring Data Commons, mientras que JpaRepository pertenece a Spring Data JPA. 

Tabla de diferencias

Repositorio Crud 

JpaRepositorio 

Es una interfaz base y amplía la interfaz de repositorio. Extiende PagingAndSortingRepository que extiende CrudRepository.
Contiene métodos para operaciones CRUD. Por ejemplo save(), saveAll(), findById(), findAll(), etc.  Contiene la API completa de CrudRepository y PagingAndSortingRepository. Por ejemplo, contiene flush(), saveAndFlush(), saveAllAndFlush(), deleteInBatch(), etc. junto con los métodos disponibles en CrudRepository.
No proporciona métodos para implementar la paginación y la clasificación. Proporciona todos los métodos que son útiles para implementar la paginación.
Funciona como una interfaz de marcador. Extiende tanto CrudRepository como PagingAndSortingRepository.
Para realizar operaciones CRUD, defina el repositorio extendiendo CrudRepository. Para realizar CRUD y operaciones por lotes, defina el repositorio extiende JpaRepository.

Sintaxis: 

interfaz pública CrudRepository<T, ID> extiende Repository<T, ID>

Sintaxis:

interfaz pública JpaRepository<T,ID> extiende PagingAndSortingRepository<T,ID>, QueryByExampleExecutor<T>

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *