Я использую Spring и уровень хранилища для подключения к базе данных. Я использую EntityManagerFactory и репозиторий jpa. Мой конфиг:
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em
= new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan("com.project.models");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
return em;
}
@Bean
public PlatformTransactionManager transactionManager(
EntityManagerFactory emf){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
Но теперь у меня есть случай, когда я хочу использовать метод create EntityManager. Как я могу взять его экземпляр, а также где, когда я использую репозиторий Jpa и у меня нет конкретного класса для него, который реализует методы?
Я использую репозиторий, расширяющий JpaRepository:
public interface MyRepository extends JpaRepository<Chat, Integer> {
}
и затем использовать его в моем сервисе:
@Service
public class MyServiceImpl implements MyService {
private MyRepository myRepository;
public MyServiceImpl(MyRepository myRepository) {
this.myRepository = myRepository;
}
Должен ли я создать абстрактный класс, реализующий MyRepository, чтобы мне не приходилось реализовывать все методы JpaRepository и использовать там экземпляр EntityManager, и как я могу это сделать?