Spring MVC Hibernate многопользовательской базы данных подход - PullRequest
0 голосов
/ 22 сентября 2019

Dispatcher-servlet.xml

com.afflatus.edu.thoth.entity $ {hibernate.dialect} $ {hibernate.show_sql} $ {hibernate.dbm2ddl}БАЗА ДАННЫХ

это текущий код идентификатора арендатора, здесь я получаю значение из контекста пружины в качестве арендатора

package com.domain.multitenancy;

import javax.sql.DataSource;

import 
org.hibernate.engine.jdbc.connections.spi.AbstractDataSourceBasedMultiTenantConnectionProviderImpl;

import com.domain.master.MasterService;



    public class MultiTenantConnectionprovideImpl extends 

AbstractDataSourceBasedMultiTenantConnectionProviderImpl {

        @Override
        protected DataSource selectAnyDataSource() {
         return MasterService.getDataSourceHashMap().get("tenantId1");
        }

        @Override
        protected DataSource selectDataSource(String tenantIdentifier) {

        return MasterService.getDataSourceHashMap().get(tenantIdentifier);
        }





}

этоосновная база данных источника

package com.domain.master;

import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
import java.util.HashMap;



public class MasterService {

     public static HashMap<String, DataSource> getDataSourceHashMap() {

            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/multiten");
            dataSource.setUsername("root");
            dataSource.setPassword("root");

            DriverManagerDataSource dataSource1 = new DriverManagerDataSource();
            dataSource1.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource1.setUrl("jdbc:mysql://localhost:3306/multiten_1");
            dataSource1.setUsername("root");
            dataSource1.setPassword("root");

            HashMap<String, DataSource> hashMap = new HashMap<String, DataSource>();
            hashMap.put("tenantId1", dataSource);
            hashMap.put("kartiktamta@gmail.com", dataSource1);
            return hashMap;
        }

    }
...