Skip to content

Instantly share code, notes, and snippets.

@sophea
Last active January 24, 2020 16:30
Show Gist options
  • Save sophea/bad4734ed49f832a04e7e1600691b628 to your computer and use it in GitHub Desktop.
Save sophea/bad4734ed49f832a04e7e1600691b628 to your computer and use it in GitHub Desktop.
MySql Database Configuration as primary database
package com.sma.backend.multidb.config;
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "mysqlEntityManagerFactory", transactionManagerRef = "mysqlTransactionManager", basePackages = {"com.sma.backend.multidb.database.mysql.repository"})
public class MySqlConfig {
@Primary
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSourceProperties mysqlDataSourceProperties() {
return new DataSourceProperties();
}
@Primary
@Bean
public DataSource mysqlDataSource(@Qualifier("mysqlDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
@Primary
@Bean
public LocalContainerEntityManagerFactoryBean mysqlEntityManagerFactory(@Qualifier("mysqlDataSource") DataSource hubDataSource, EntityManagerFactoryBuilder builder) {
return builder.dataSource(hubDataSource).packages("com.sma.backend.multidb.database.mysql.domain")
.persistenceUnit("mysql").build();
}
@Primary
@Bean
public PlatformTransactionManager mysqlTransactionManager(@Qualifier("mysqlEntityManagerFactory") EntityManagerFactory factory) {
return new JpaTransactionManager(factory);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment