Нет доступного bean-компонента с именемactionManager. Не найден соответствующий bean-компонент PlatformTransactionManager для квалификатораactionManager. - PullRequest
0 голосов
/ 17 сентября 2018

My application.properties:

spring.datasource.url=jdbc:postgresql://uy-agent009.soutcom.ru:5432/user
spring.datasource.username=user
spring.datasource.password=mySecretPassword
spring.datasource.driverClassName=org.postgresql.Driver

spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.jdbc.fetch_size=50
spring.jpa.hibernate.jdbc.batch_size=50

spring.jpa.hibernate.format_sql=true
spring.jpa.hibernate.show_sql=true
spring.jpa.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.type=DEBUG

Мой основной класс:

@SpringBootApplication(scanBasePackages = {
        "com.agent.console", "com.agent.integrations.spring"
})
@EnableJpaRepositories(basePackages = "com.agent.console")
public class AdminConsoleApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminConsoleApplication.class, args);
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean emFactory = new LocalContainerEntityManagerFactoryBean();

        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setDatabase(Database.POSTGRESQL);
        vendorAdapter.setGenerateDdl(false);
        emFactory.setJpaVendorAdapter(vendorAdapter);

        emFactory.setPackagesToScan("com.agent.console");
        return emFactory;
    }
}

Я использую PagingAndSortingRepository. Когда я запускаю основной класс и пытаюсь запустить метод Get в контроллере, используя Postman, я получаю сообщение: "NoSuchBeanDefinitionException: нет доступного компонента с именем "actionManager": не найдено подходящего компонента PlatformTransactionManager для квалификатора "actionManager "- ни соответствие квалификатора или имя бина! "

Я попытался решить проблему, добавив следующий код:

@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager() {
    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(entityManagerFactory().getObject());
    return txManager;
}

Но есть и другое исключение:

"CannotCreateTransactionException: не удалось открыть JPA EntityManager для транзакции; вложенное исключение - java.lang.UnsupportedOperationException: приложение должно предоставлять соединения JDBC"

Как я могу решить эту проблему?

...