Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate spring从数据库而不是从属性启动多租户_Hibernate_Spring Boot_Spring Data Jpa_Multi Tenant - Fatal编程技术网

Hibernate spring从数据库而不是从属性启动多租户

Hibernate spring从数据库而不是从属性启动多租户,hibernate,spring-boot,spring-data-jpa,multi-tenant,Hibernate,Spring Boot,Spring Data Jpa,Multi Tenant,我想从数据库而不是属性文件加载多租户数据库。我将学习本教程()。 这就是我的数据源Bean的外观: @Bean public DataSource dataSource() { Map<Object, Object> resolvedDataSources = this.multiTenantDbBuilder.getResolvedDataSources(); TenantAwareRoutingSource dataSource =

我想从数据库而不是属性文件加载多租户数据库。我将学习本教程()。 这就是我的数据源Bean的外观:

    @Bean
    public DataSource dataSource() {
        Map<Object, Object> resolvedDataSources = this.multiTenantDbBuilder.getResolvedDataSources();
        TenantAwareRoutingSource dataSource = new TenantAwareRoutingSource();
        dataSource.setDefaultTargetDataSource(this.defaultDataSource());
        dataSource.setTargetDataSources(resolvedDataSources);
        dataSource.afterPropertiesSet(); // Call this to finalize the initialization of the data source.
        return dataSource;
    }

@Bean
公共数据源数据源(){
Map resolvedDataSources=this.multiTenantDbBuilder.getResolvedDataSources();
TentawareRoutingSource数据源=新的TentawareRoutingSource();
setDefaultTargetDataSource(this.defaultDataSource());
dataSource.setTargetDataSources(resolvedDataSources);
dataSource.AfterPropertieSet();//调用此函数以完成数据源的初始化。
返回数据源;
}
我想从数据库(默认数据库)检索我的resolvedDataSources,问题是我不能使用JPA,因为数据源bean还没有创建


谢谢大家!

这样的实现比乍一看要复杂一些-需要创建两个数据源:一个用于AbstractRoutingDataSource(“多数据库”数据源),第二个用于存储租户属性的数据库()

您可以在我的演示项目的这个分支中找到工作示例:

要运行分支—首先启动Postgres with—它将创建预定义的租户数据库,然后运行。之后,您将能够在中运行演示请求(如果您使用IntelliJ IDEA)


我原来的帖子是关于