Как установить имя EntityManagerFactory в репозитории Spring JPA?

#spring-boot #spring-data-jpa

#spring-boot #spring-data-jpa

Вопрос:

У меня есть несколько подключений к базе данных с именованными EntityManagers:

 @Bean(name = "integDB")
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean(name = "integEM")
public LocalContainerEntityManagerFactoryBean integDbEntityManagerFactory(EntityManagerFactoryBuilder builder) {
     ....
}
  

Как мне указать, какой менеджер сущностей использовать здесь?

 @Repository
public interface IntControleFilaRepository extends JpaRepository<IntControleFilaEntity, String> {

}
  

Весна жалуется на это:
Параметр 0 конструктора в … требуется компонент с именем ‘EntityManagerFactory’, который не удалось найти.

Ответ №1:

Создайте класс конфигурации для каждой базы данных и укажите EntityManager, связанный с каждой из них:

 @Configuration
@EnableJpaRepositories(basePackages = {"..."}, entityManagerFactoryRef = "integEM", transactionManagerRef = "integTM")
public class IntegReposConfig {
}