springframework - ¿Cuál es la diferencia entre Spring Entity Manager y Spring Data Repository?
spring data repository tutorial (1)
Estoy usando JPA en un sitio web. Después de explorar sobre las opciones para guardar datos, encontré 2 enfoques. El primer enfoque es utilizar una implementación de javax.persistence.EntityManager. Utilicé LocalContainerEntityManagerFactoryBean para crear una instancia de EntityManager. Una vez que obtengo una instancia de un EntityManager, puedo usarla para guardar una entidad. Por ejemplo,
entityManager.merge(someEntity);
Otra opción es usar una instancia de org.springframework.data.repository.CrudRepository. Uno, obtengo una instancia de CrudRepository, puedo usarla para guardar una entidad. Por ejemplo,
aCrudRepository.save(someEntity);
¿Cuál es la diferencia entre usar un EntityManager y un CrudRepository para persistir una entidad en una base de datos? ¿Cuál es el beneficio o la desventaja de los dos enfoques (administrador de la entidad vs. repositorio crudino)?
Estas dos interfaces presentan dos enfoques diferentes:
-
org.springframework.data.repository.CrudRepository
es una interfaz común para los repositorios que proporcionan operaciones CRUD. -
javax.persistence.EntityManager
está asociado con un contexto de persistencia. Spring tiene su propia interfaz que amplíaCrudRepository
llamadaJpaRepository
para este propósito.
Espero que sepas sobre los beneficios o desventajas de la API persistente. Si no, puedes leer las respuestas a esta pregunta .