当前位置: 首页 > 知识库问答 >
问题:

如何在支持多租户(每个租户一个数据库)的Spring Boot应用程序中使用固定数据库

李光华
2023-03-14

我有一个支持多租户的Spring Boot应用程序(请参阅https://medium.com/swlh/multi-tenancy-implementation-using-spring-boot-hibernate-6a8e3ecb251a)每个数据库都有一堆jpa实体。不过,我有一个实体表租户,它应该只存在于默认数据库中,并存储关于各种租户的信息(例如数据库名称)。如何在租户/数据库设置中修复实体类的数据库?

在每个模式的租户中,您可以方便地使用@Table注释,例如:

@Entity
@Table(name="tenant", schema = "public")
public class Tenant {
...

对于每个数据库的设置是否存在类似的方法?

共有1个答案

阎渝
2023-03-14

您需要设置多个数据源,然后将专用实体管理器连接到每个数据源,然后为每个专用实体管理器附加JPA存储库。

以下是一个很好的例子:

https://medium.com/@joeclever/using-multiple-datasources-with-spring-boot-and-spring-data-6430b00c02e7

 类似资料:
  • 我们正在开发一个多租户应用程序。在体系结构方面,我们为业务逻辑设计了共享中间层,为数据持久性设计了每个租户一个数据库。也就是说,业务层将与每个租户的数据库服务器建立一组连接(连接池)。这意味着应用程序为每个租户维护单独的连接池。如果我们预计约有5000个租户,那么这个解决方案需要高资源利用率(每个租户的应用服务器和数据库服务器之间的连接),这会导致性能问题。 我们已经通过保持公共连接池解决了这个问

  • 我正在将当前的应用程序迁移到多租户体系结构。由于只有一个代码库,我需要解决多个租户的问题。我使用的是单数据库、多模式的方法。每个租户将被分配一个单独的模式,其中元数据保存在默认模式中。 应用程序是用ASP构建的。NET MVC。我使用Dapper连接到我的SQL Server。我有50个函数,使用直接查询和存储过程调用数据库。当为每个租户初始化dapper时,是否有任何方法可以在不改变函数的情况下

  • 我有两个来自不同组织(租户)的SharePoint网站: 房客1:abc.sharepoint.com 房客2:xyz.sharepoint.com 已在azure portal for Tenan 1'abc上注册并授予应用程序所需的权限。sharepoint。com”,以便租户2用户可以访问它:“xyz”。sharepoint。com' 认证工作正常 当我与租户1的abc用户进行身份验证时,对

  • 我正在为多租户SAAS模型设计web应用程序,由于一些规定,我们决定每个租户有一个数据库,我们正在考虑为我们的中间件提供微服务。但我有点困惑,微服务架构谈论的是“每个微服务都有自己的数据库”。下面是我的问题 如果我将共享数据库用于微服务,这违反了微服务设计的概念/目的,即它们都应该被隔离,任何更改都应该限于该微服务 我可以想到一个层,它模仿我的数据库表作为DTO,每个微服务都通过这个层与数据库通信

  • 我想知道如何为每个租户提供定制。我想提供在租户想要的每种形式中添加新字段的设施,包括字段名、数据类型等。现在我的问题是如何为这种类型的场景设计数据库表?正如我所想的那样,我们必须给每个表单赋予表单id,每当租户在表单中创建新字段时,应该在数据库表中创建一个新的行,该行应该具有租户id、表单id、字段名称、数据类型等... 现在请给我真正的解决方案的朋友......我需要这个数据库表设计解决方案立即

  • 我正在使用Spring 2. x、Hibernate 5. x、Spring Data REST、Mysql 5.7构建一个多租户REST服务器应用程序。Spring 2. x使用Hikari进行连池。 我将使用每个租户数据库的方法,这样每个租户都有自己的数据库。 我以这种方式创建了我的MultiTenantConnectionProvider: 在我的实现中,我阅读了tenantId,并从中央管