我的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连接”
我该如何解决这个问题?