【发布时间】:2014-02-25 07:31:24
【问题描述】:
我必须实现具有以下要求的多租户 Web 应用程序
单表多租户:特定实体的所有租户数据将存储在单个表中,其中 TENANT_DISCRIMINATOR (TENANT_ID) 作为每个表中的一列。
某些表,例如 Master Country, Masters...,我希望它对所有租户都通用,即在这些表中,不会有像 TENANT_DISCRIMINATOR (TENANT_ID) 这样的列,但我仍然想访问它无缝衔接。
根据请求或维护原因,我想通过某些管理员配置和我的 Web 应用程序将已经是单表多租户的一部分的租户的数据移动到单独的数据库架构,反之亦然,在下一次请求时应该能够与更新的架构/数据源进行通信。
现在为所有租户提供一张桌子。我用过
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
并插入一个
org.springframework.jdbc.datasource.DriverManagerDataSource
进入那个。我想在这里有灵活性,可以读取一些配置并帮助我决定相同的表/数据源或一些不同的数据源。
前两点,我可以用 EclipseLink 框架来实现。
我的问题是
是否可以使用 EclipseLink 实现第 3 点?
hibernate 3+ 或 4+ 可以帮我实现这些吗?
任何帮助将不胜感激。
【问题讨论】:
-
您需要更详细地概述#3,因为将数据移动到另一个表并让用户无缝访问它是一个困难的提议。您预计对当前访问旧表/应用程序的用户有何影响?
标签: hibernate eclipselink multi-tenant