2016-09-12 10 views
0

私はSpringブート(1.4)アプリケーションでスキーマごとにマルチテナントをサポートしようとしています。私は私の設定に次のように持って次のようにMultiTenantConnectionProviderの実装でautowiredデータソースがnullになっています

hibernate: 
     format_sql: true 
     default_schema: corrto 
     multiTenancy: SCHEMA 
     tenant_identifier_resolver: com.config.HeaderTenantIdentifierResolver 
     multi_tenant_connection_provider: com.config.SchemaPerTenantConnectionProvider 

マイMultiTenantConnectionProviderの実装は次のとおりです。

public class SchemaPerTenantConnectionProvider implements MultiTenantConnectionProvider { 

    @Autowired 
    private DataSource dataSource; 

    @Override 
    public Connection getAnyConnection() throws SQLException { 
     return this.dataSource.getConnection(); 
    } 

    @Override 
    public void releaseAnyConnection(Connection connection) throws SQLException { 
     connection.close(); 
    } 

    @Override 
    public Connection getConnection(String tenantIdentifier) throws SQLException { 
     final Connection connection = this.getAnyConnection(); 
     // need to do stuff here 
     return connection; 
    } 

    @Override 
    public void releaseConnection(String tenantIdentifier, Connection connection) throws SQLException { 

    } 

    @Override 
    public boolean supportsAggressiveRelease() { 
     return true; 
    } 

    @Override 
    public boolean isUnwrappableAs(Class unwrapType) { 
     return false; 
    } 

    @Override 
    public <T> T unwrap(Class<T> unwrapType) { 
     return null; 
    } 
} 

dataSourceがnullであるので、それが失敗しています。私はそれがまだ作成されていないと仮定しているが、私はGoogleを介して解決策を見つけるのに苦労している。

+0

データソースをセットアップしましたか? – Taylor

+1

'SchemaPerTenantConnectionProvider'はautowiredにするために' @ Component'で注釈を付けるべきではありませんか? – jny

答えて

0

私は同じproblem.ItがymlHeaderTenantIdentifierResolverSchemaPerTenantConnectionProviderにhibernate.See hereによって管理されているようです会いました。

関連する問題