I am using JPA in a website. After exploring about options for saving data, I found 2 approach. The first approach is using an implementation of javax.persistence.EntityManager
. I used LocalContainerEntityManagerFactoryBean
to instantiate an instance of EntityManager
. Once I obtain an instance of an EntityManager
, I can use it to save an entity. For example,
entityManager.merge(someEntity);
Another option is to use an instance of org.springframework.data.repository.CrudRepository
. One, I obtain an instance of a CrudRepository
, I can use it to save an entity. For example,
aCrudRepository.save(someEntity);
What is the difference between using an EntityManager
and a CrudRepository
to persist an entity into a database ? What are the benefit or disadvantage of the two approach (entity manager vs. crud repository) ?
This two interfaces presents two different approaches:
org.springframework.data.repository.CrudRepository
is common interface for repositories which provide CRUD operations.javax.persistence.EntityManager
is associated with a persistence
context. Spring has its own interface which extends CrudRepository
called JpaRepository
for this purposes.I hope you know about benefits or disadvantages of persistent API. If you don't you can read answers to this question.