Last active
January 24, 2020 16:29
-
-
Save sophea/7eb6f46ba01d37c25be487c1522acdfa to your computer and use it in GitHub Desktop.
SQLServer Config datasource
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.sma.backend.multidb.config; | |
import org.springframework.beans.factory.annotation.Qualifier; | |
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; | |
import org.springframework.boot.context.properties.ConfigurationProperties; | |
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; | |
import org.springframework.context.annotation.Bean; | |
import org.springframework.context.annotation.Configuration; | |
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | |
import org.springframework.orm.jpa.JpaTransactionManager; | |
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; | |
import org.springframework.transaction.PlatformTransactionManager; | |
import org.springframework.transaction.annotation.EnableTransactionManagement; | |
import javax.persistence.EntityManagerFactory; | |
import javax.sql.DataSource; | |
@Configuration | |
@EnableTransactionManagement | |
@EnableJpaRepositories(entityManagerFactoryRef = "sqlServerEntityManagerFactory", | |
transactionManagerRef = "sqlServerTransactionManager", | |
basePackages = "com.sma.backend.multidb.database.sqlserver.repository") | |
public class SqlServerConfig { | |
@Bean | |
@ConfigurationProperties(prefix = "sqlserver.datasource") | |
public DataSourceProperties sqlServerDataSourceProperties() { | |
return new DataSourceProperties(); | |
} | |
@Bean | |
public DataSource sqlServerDataSource(@Qualifier("sqlServerDataSourceProperties") DataSourceProperties dataSourceProperties) { | |
return dataSourceProperties.initializeDataSourceBuilder().build(); | |
} | |
@Bean(name = "sqlServerEntityManagerFactory") | |
public LocalContainerEntityManagerFactoryBean sqlServerEntityManagerFactory(@Qualifier("sqlServerDataSource") DataSource sqlServerDataSource, EntityManagerFactoryBuilder builder) { | |
return builder.dataSource(sqlServerDataSource) | |
.packages("com.sma.backend.multidb.database.sqlserver.domain") | |
.persistenceUnit("sqlserver") | |
.build(); | |
} | |
@Bean | |
public PlatformTransactionManager sqlServerTransactionManager(@Qualifier("sqlServerEntityManagerFactory") | |
EntityManagerFactory factory) { | |
return new JpaTransactionManager(factory); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment