I'm trying to use 2 databases for Spring Boot. However, it says could not autowire.
No beans of EntityManagerFactoryBuild type found
I'm new to Spring Boot, and I'm using MySQL 8, Spring Boot 2 and Java 12.
I have included student & adms configure files and repository files here. File structure is
com.project.attendance
-configure
-model
-repository
-dao
-controller
StudentConfigure class configuration
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = "com.project.attendance.repository.student",
entityManagerFactoryRef = "studentEntityManager",
transactionManagerRef = "studentTransactionManager"
)
public class StudentConfigure {
@Primary
@Bean(name="studentDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource studentDataSource(){
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name="studentEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("studentDataSource") DataSource dataSource){
return builder
.dataSource(dataSource)
.packages("com.project.attendance.dao.student")
.persistentUnit("sampledb")
.build();
}
@Primary
@Bean(name="studentTransactionManager")
public PlatformTransactionManager studentTransactionManager(
@Qualifier("studentEntityManagerFactory") EntityManagerFactory studentEntityManagerFactory){
return new JpaTransactionManager(studentEntityManagerFactory);
}
}
AdmsConfigure configure class implementation
package com.project.attendance.configure;
import javax.sql.DataSource;
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = {"com.project.attendance.repository.adms"},
entityManagerFactoryRef = "admsEntityManager",
transactionManagerRef = "admsTransactionManager"
)
@ComponentScan(basePackages = "com.project.attendance.repository.adms")
public class AdmsConfigure {
@Bean(name="admsDataSource")
@ConfigurationProperties(prefix = "spring.datasource2")
public DataSource admsDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name="admsEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("admsDataSource") DataSource dataSource){
return builder
.dataSource(dataSource)
.packages("com.project.attendance.dao.adms")
.persistentUnit("adms")
.build();
}
@Primary
@Bean(name="admsTransactionManager")
public PlatformTransactionManager admsTransactionManager(
@Qualifier("admsEntityManagerFactory") EntityManagerFactory admsEntityManagerFactory){
return new JpaTransactionManager(admsEntityManagerFactory);
}
}
Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url = jdbc:mysql://localhost:3306/sampledb?useSSL=false
spring.datasource.username = root
spring.datasource.password =root
spring.datasource2.url = jdbc:mysql://localhost:3306/adms?useSSL=false
spring.datasource2.username = root
spring.datasource2.password =root
logging.level.root=WARN