【发布时间】:2015-01-31 23:10:04
【问题描述】:
我有 PlatformTransactionManager 依赖项(实际上是 JpaTransactionManager)。我可以使用 TransactionTemplate 在事务中执行操作。但我不知道如何检索 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;
}
【问题讨论】:
标签: java spring jpa transactions