1

I am creating custom data sources and when I am trying to create a repository, the bean is not getting initialized properly and I am getting an error as -

className":"org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter","methodName":"report","log":"Application failed to start due to an exception","stackTrace":"org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.relational.core.mapping.RelationalMappingContext' available: expected at least 1 bean which qualifies as autowire candidate.

I only want to read information from the table so I haven't defined any @Table and @Column in my dto.

The Autoconfiguration is not working for my spring-boot-JDBC project.

Here is my configuration file

@Configuration
public class DBConfiguration {

  @Bean(name = "DSProperties1")
  @ConfigurationProperties("datasource1.spring.datasource")
  public DataSourceProperties dataSourceProperties2() {
    return new DataSourceProperties();
  }

  @Bean(name = "DSProperties2")
  @ConfigurationProperties("datasource1.spring.datasource")
  public DataSourceProperties dataSourceProperties1() {
    return new DataSourceProperties();
  }

  @Bean(name = "DataSource1")
  @ConfigurationProperties("datasource1.spring.datasource.hikari")
  @Primary
  public DataSource dataSource1(
          @Qualifier("DSProperties1") DataSourceProperties dsProperties) {
    return dsProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
  }

  @Bean(name = "DataSource2")
  @ConfigurationProperties("datasource2.spring.datasource.hikari")
  public DataSource dataSource2(
          @Qualifier("DSProperties2") DataSourceProperties dsProperties) {
    return dsProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
  }

  }

1 Answers1

0

The deleted part of your question shows that you have more than one DataSource configured. This makes it impossible for autoconfiguration to proceed.

Either declare exactly one DataSource or configure Spring Data JDBC yourself. You can do that by extending AbstractJdbcConfiguration

Jens Schauder
  • 77,657
  • 34
  • 181
  • 348
  • ok, I have readded the part. I have tried to extend the AbstractJdbcConfiguration in the above configuration. Now I am getting an exception creating dailect bean as Error creating bean with name 'jdbcDialect' – Mohit Gupta Sep 22 '21 at 10:46