Necesitamos tu apoyo para extender nuestros posts acerca de las ciencias de la computación.
Solución:
Estas dos interfaces presentan dos enfoques diferentes:
org.springframework.data.repository.CrudRepository
es una interfaz común para repositorios que proporcionan operaciones CRUD.javax.persistence.EntityManager
está asociado con un contexto de persistencia. Spring tiene su propia interfaz que se extiendeCrudRepository
llamóJpaRepository
para estos fines.
Espero que conozca los beneficios o desventajas de la API persistente. Si no lo hace, puede leer las respuestas a esta pregunta.
Hay varias capas de trabajo con datos persistentes en Java/Spring:
- JDBC
- Plantilla Jdbc
- JPA (contiene
EntityManager
) - Spring Data JPA (contiene
Repository
)
Cada abstracción protege a los desarrolladores de los detalles de nivel inferior, pero puede traer sus propias complejidades. JdbcTemplate es una abstracción delgada sobre JDBC simple.
Repository
es una abstracción sobre EntityManager
. Protege a los desarrolladores de algunos detalles complejos que se introducen con EntityManager
y agrega código repetitivo y muchos métodos convenientes.
Por ejemplo, CrudRepository
añade la implementación de findAll()
, que es tan común que tiene sentido predefinirlo. Los repositorios tienen muchos métodos convenientes para generar consultas a partir de nombres de métodos (convención sobre configuración), desde las propias entidades (Consulta por ejemplo). Permiten usar una buena API fluida con seguridad de tipos con Query DSL o habilitar proyecciones dinámicas.
Si tienes alguna suspicacia y disposición de acrecentar nuestro división eres capaz de añadir una acotación y con mucho placer lo estudiaremos.