В чем разница между Spring Entity Manager и Spring Data Repository?

Я использую JPA на веб-сайте. Изучив варианты сохранения данных, я нашел 2 подхода. В первом подходе используется реализация javax.persistence.EntityManager. Я использовал LocalContainerEntityManagerFactoryBean для создания экземпляра EntityManager. Как только я получу экземпляр EntityManager, я могу использовать его для сохранения объекта. Например,

entityManager.merge(someEntity);

Другой вариант - использовать экземпляр org.springframework.data.repository.CrudRepository. Во-первых, я получаю экземпляр CrudRepository, я могу использовать его для сохранения объекта. Например,

aCrudRepository.save(someEntity);

В чем разница между использованием EntityManager и CrudRepository для сохранения объекта в базе данных? Каковы преимущества или недостатки двух подходов (диспетчер организации и репозиторий crud)?

Ответ 1

Эти два интерфейса представляют два разных подхода:

  • org.springframework.data.repository.CrudRepository - общий интерфейс для репозиториев, которые предоставляют операции CRUD.
  • javax.persistence.EntityManager связан с контекстом персистентности. Spring имеет свой собственный интерфейс, который расширяет CrudRepository под названием JpaRepository для этих целей.

Надеюсь, вы знаете о преимуществах или недостатках стойкого API. Если вы этого не сделаете, вы можете прочитать ответы на этот вопрос.