У меня есть PlatformTransactionManager в зависимости (на самом деле JpaTransactionManager). Я могу использовать TransactionTemplate для выполнения действия в транзакции. Но я не могу понять, как я могу использовать EntityManager для использования.Получить EntityManager, используя весовое ручное управление транзакциями
@Autowired PlatformTransactionManager transactionManager;
void doSomething() {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
EntityManager entityManager = ???;
// do work
}
});
}
Вот родственная конфигурация:
@Bean
public DataSource dataSource() { ... }
@Bean
public FactoryBean<EntityManagerFactory> entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(dataSource());
...
return entityManagerFactory;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
jpaTransactionManager.setEntityManagerFactory(entityManagerFactory);
return jpaTransactionManager;
}