How can I get access to the Entity Manager
in the repository when using Spring Boot and Spring Data?
Otherwise, I will need to put my big query in an annotation. I would prefer to have something more clear than a long text.
The EntityManager API is used to create and remove persistent entity instances, to find entities by their primary key, and to query over entities. The set of entities that can be managed by a given EntityManager instance is defined by a persistence unit.
You would define a CustomRepository
to handle such scenarios. Consider you have CustomerRepository
which extends the default spring data JPA interface JPARepository<Customer,Long>
Create a new interface CustomCustomerRepository
with a custom method signature.
public interface CustomCustomerRepository { public void customMethod(); }
Extend CustomerRepository
interface using CustomCustomerRepository
public interface CustomerRepository extends JpaRepository<Customer, Long>, CustomCustomerRepository{ }
Create an implementation class named CustomerRepositoryImpl
which implements CustomerRepository
. Here you can inject the EntityManager
using the @PersistentContext
. Naming conventions matter here.
public class CustomCustomerRepositoryImpl implements CustomCustomerRepository { @PersistenceContext private EntityManager em; @Override public void customMethod() { } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With