定义与 JpaRepository 关联的实体管理器

use*_*693 3 spring spring-data spring-data-jpa

我正在编写一个具有多个数据源和实体管理器的 Spring Boot 应用程序,我想使用 JPA CrudRepository 接口,如:

@Repository public interface Car extends CrudRepository<Car.class, Long> {}.

我收到以下错误:

创建名为“carRepository”的 bean 时出错:在设置 bean 属性“entityManager”时无法创建类型为 [org.springframework.orm.jpa.SharedEntityManagerCreator] 的内部 bean“(inner bean)#350d0774”;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 '(inner bean)#350d0774' 的 bean 时出错:设置构造函数参数时无法解析对 bean 'entityManagerFactory' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源中定义名称为“entityManagerFactory”的 bean 创建时出错

我一直无法弄清楚在构建存储库时如何告诉 JpaRepositoryFactory 使用哪个实体管理器。它默认尝试注入一个名为:entityManagerFactory 的 EntityManagerFactory

Omk*_*kar 5

检查有关属性的此文档

@EnableJpaRepositories在具有entityManagerFactoryReftransactionManagerRef属性的Java 配置类上使用以下注释。

@EnableJpaRepositories(basePackages = {
        "com.myapp.repositories" }, entityManagerFactoryRef = "entityManagerFactoryRef1", transactionManagerRef = "transactionManagerRef1")
Run Code Online (Sandbox Code Playgroud)

删除界面上的@Repository注释Car。如果指定basePackages属性,Spring 会将其注册为 JPA 存储库。