没有可用的名为'transactionManager'的bean:找不到与限定符'transactionManager'匹配的PlatformTransactionManager bean

时间:2018-09-17 13:35:18

标签: java spring hibernate orm transactions

我的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。当我启动主类并尝试使用Postman在控制器中运行Get方法时,我收到一条消息:“ NoSuchBeanDefinitionException:找不到名为'transactionManager'的bean:找不到与限定符'transactionManager'匹配的PlatformTransactionManager bean-两者限定符匹配或bean名称匹配!”

我试图通过添加以下代码来解决该问题:

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

但是还有另一个例外:

“ CannotCreateTransactionException:无法打开JPA EntityManager进行事务;嵌套的异常是java.lang.UnsupportedOperationException:应用程序必须提供JDBC连接”

我该如何解决这个问题?

0 个答案:

没有答案
相关问题