我目前正在使用自己的JpaTransactionmanager配置将我的项目升级到 Spring Boot 3。
我的代码如下所示:
@Configuration
@EnableJpaRepositories(
entityManagerFactoryRef = "myEntityManagerFactory",
transactionManagerRef = "myTransactionManager"
)
public class MyPersistenceConfig {
...
@Bean
public LocalContainerEntityManagerFactoryBean myEntityManagerFactory(DataSource dataSource) {
var emfBean = new LocalContainerEntityManagerFactoryBean();
// Some configuration removed
return emfBean;
}
@Bean
public JpaTransactionManager myTransactionManager(@Qualifier("myEntityManagerFactory") EntityManagerFactory emf) {
var transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,此代码适用于最新的 Spring Boot 2,但不适用于 Spring Boot 3。启动时会引发以下(最小化)错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myEntityManagerFactory' defined in class path resource [<path>/<to>/MyPersistenceConfig.class]: Unable to resolve name …Run Code Online (Sandbox Code Playgroud)