Ручная настройка весенней загрузки не сканирует объекты репозитория? - PullRequest
0 голосов
/ 29 ноября 2018

Несмотря на некоторые довольно наглядные примеры, мне не удается настроить ручную настройку приложения с весенней загрузкой.Я обычно разрешаю его настраивать прямо из файла application.properties, но требование требует, чтобы я использовал несколько источников данных.И да, я попытался воссоздать пример Baeldung (https://www.baeldung.com/spring-data-jpa-multiple-databases), как рекомендовано в постах, которые я видел здесь. Вот мой конфиг:

@Configuration
@EnableJpaRepositories(basePackages = "com.ezcorp.costumerrefresh.db.sqlserver", entityManagerFactoryRef = "sqlserverEntityManagerFactory", transactionManagerRef = "sqlserverTransactionManager")
@EnableTransactionManagement
public class SqlServerConfig {

    @Bean(name="sqlserverDataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    @Primary
    public DataSource sqlserverDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        dataSource.setUrl("jdbc:sqlserver://aswn-tbd-db01:1433;databaseName=DE_RTDS");
        dataSource.setUsername("cs_user");
        dataSource.setPassword("cs_user");
        return dataSource;
    }

    @Bean
    @Primary
    public LocalContainerEntityManagerFactoryBean sqlserverEntityManagerFactory(final EntityManagerFactoryBuilder builder) {
        HashMap<String, Object> properties = new HashMap<>();
        properties.put("hibernate.dialect", "org.hibernate.dialect.SQLServer2008Dialect");
        return builder
            .dataSource(sqlserverDataSource())
            .properties(properties)
            .packages("com.ezcorp.costumerrefresh.domain.sqlserver")
            .persistenceUnit("adminPersistenceUnit")
            .build();
    }

    @Bean
    @Primary
    public JpaTransactionManager sqlserverTransactionManager(@Qualifier("sqlserverEntityManagerFactory") final EntityManagerFactory factory) {
        return new JpaTransactionManager(factory);
    }

}

Служба:

@Service
public class CustomerRefreshService {
    @Autowired
    private ExistingLoanModelDataRepository existingLoanModelDataRepository;

    public void execute() {
        System.out.println("show me");
    }
}

Репозиторий:

@Repository
public interface ExistingLoanModelDataRepository extends CrudRepository<ExistingLoanModelData, Long> {
    ExistingLoanModelData findByCustomerId(Long customerId);
}

ошибка:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ezcorp.customerrefresh.db.sqlserver.ExistingLoanModelDataRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    ...

Что я делаю не так? Это примерно так же просто, как и получается. Я устранил другие(Монго) Настройка конфигурации для упрощения. Это должно быть очевидным ... только не для меня: -)

1 Ответ

0 голосов
/ 29 ноября 2018

Похоже на опечатку.

@ EnableJpaRepositories (basePackages = "com.ezcorp.cost u merrefresh.db.sqlserver", entityManagerFactoryRef = "sqlserverEntityManagerFactory", TransactionsManagerRef "=.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...