小编taf*_*fli的帖子

合格的 bean 必须是 Spring Boot 3 中的“EntityManagerFactory”类型。适用于 Spring Boot 2

我目前正在使用自己的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)

java spring hibernate jpa spring-boot

1
推荐指数
1
解决办法
5029
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

spring ×1

spring-boot ×1