Я использую несколько баз данных в Spring Boot, но создаю домены в основной базе данных - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь соединиться с двумя базами данных в Spring Boot. Но два домена создаются в основной базе данных. Я загрузил свой код. Если кто знает. Я не получаю никаких ошибок консоли. Но два домена создаются в основной БД.

Могу ли я узнать, что за этим стоит регион?

(Первая база данных)

@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "dbEntityManagerFactory", transactionManagerRef = "dbTransactionManager", basePackages = {
        "com.multipledatasources.db.domain", "com.multipledatasources.db.repository" })
public class DBConfigure {

    @Autowired
    private DatabaseSettings databaseSettings;

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource1")
    public DataSourceProperties productProperties() {
        return new DataSourceProperties();
    }

    @Primary
    @Bean(name = "DB")
    public DataSource dataSource(DataSourceProperties dataSourceProperties) {
        return dataSourceProperties.initializeDataSourceBuilder().build();
    }

    @Primary
    @Bean(name = "dbEntityManagerFactory")
    public LocalContainerEntityManagerFactoryBean dbEntityManagerFactory(EntityManagerFactoryBuilder builder,
            @Qualifier("DB") DataSource DBDataSource) {
        Map<String, String> map = databaseSettings.setting();
        return builder.dataSource(DBDataSource)
                .packages("com.multipledatasources.db.domain", "com.multipledatasources.db.repository").properties(map)
                .persistenceUnit("DB").build();
    }

    @Primary
    @Bean(name = "dbTransactionManager")
    public PlatformTransactionManager dbTransactionManager(
            @Qualifier("dbEntityManagerFactory") EntityManagerFactory dbEntityManagerFactory) {
        return new JpaTransactionManager(dbEntityManagerFactory);
    }

(Вторая база данных)

@EnableTransactionManagement
@EnableJpaRepositories(transactionManagerRef = "sysTransactionManager", entityManagerFactoryRef = "sysEntityManagerFactory", basePackages = {
        "com.multipledatasources.sys.domain", "com.multipledatasources.sys.repository" })
public class SysConfigure {

    @Autowired
    private DatabaseSettings databaseSettings;

    @Bean
    @ConfigurationProperties("spring.datasource2")
    public DataSourceProperties sysProperties() {
        return new DataSourceProperties();
    }

    @Bean(name = "sys")
    public DataSource sysDataSource(DataSourceProperties dataSourceProperties) {
        return dataSourceProperties.initializeDataSourceBuilder().build();
    }

    @Bean(name = "sysEntityManagerFactory")
    public LocalContainerEntityManagerFactoryBean sysEntityManagerFactory(
            EntityManagerFactoryBuilder entityManagerFactory, @Qualifier("sys") DataSource dataSource) {
        Map<String, String> map = databaseSettings.setting();
        return entityManagerFactory.dataSource(dataSource).properties(map)
                .packages("com.multipledatasources.sys.domain", "com.multipledatasources.sys.repository")
                .persistenceUnit("sys").build();
    }

    @Bean(name = "sysTransactionManager")
    public PlatformTransactionManager sysTransactionManager(
            @Qualifier("sysEntityManagerFactory") EntityManagerFactory sysEntityManagerFactory) {
        return new JpaTransactionManager(sysEntityManagerFactory);
    }

(Класс настройки)

        Map<String, String> map = new HashMap<>();
        map.put(AvailableSettings.SHOW_SQL, "true");
        map.put(AvailableSettings.HBM2DDL_AUTO, "update");
        map.put(AvailableSettings.DIALECT, "org.hibernate.dialect.MySQL5InnoDBDialect");
        return map;
    }

(файл Application.properties)

server.port=4456

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.generate-ddl=true

## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource1.url=jdbc:mysql://localhost:3306/DB?useSSL=false
spring.datasource1.username=root
spring.datasource1.password=sarat

## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource2.url=jdbc:mysql://localhost:3306/sys?userSSL=false
spring.datasource2.username=root
spring.datasource2.password=sarat

Проектные структуры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...