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

带有Spring 3.2的多租户。X和Eclipse Link/Hibernate?

马涵蓄
2023-03-14

我必须实现多租户Web应用程序,具有以下要求

>

  • 单表多租户:特定实体的所有租户数据都将存储在一个表中,TENANT_DISCRIMINATOR(TENANT_ID)作为每个表中的一列。

    一些表格,例如Master Countries、Masters,我希望它对所有租户都是通用的,即在这些表中,不会有像TENANT\u DISCRIMINATOR(TENANT\u ID)这样的列,但我仍然希望无缝地访问它。

    出于请求或维护原因,我希望通过一些管理配置和我的web应用程序,将已经是单表多租户一部分的租户的数据移动到单独的数据库架构,反之亦然。在下一次请求时,我的web应用程序应能与更新的架构/数据源通信。

    现在为所有租户提供一张桌子。我已经使用了

    org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean 
    

    并插上了一个

    org.springframework.jdbc.datasource.DriverManagerDataSource
    

    这一点。我想在这里有灵活性,可以读取一些配置,并帮助我决定相同的表/数据源或一些不同的数据源。

    前两点,我能够用EclipseLink框架实现。

    我的问题是

    >

    hibernate 3或4可以帮助我实现这些吗?

    任何帮助都将不胜感激。

  • 共有1个答案

    章琛
    2023-03-14

    Eclipselink确实有一个远程命令,强制在运行的工厂上刷新元数据,以便获得的下一个EntityManager将使用新的元数据。这可能允许您使用自定义程序和/或元数据存储库通过管理客户端对租户结构进行更改,然后将这些更改推送到正在运行的应用程序中。看见http://wiki.eclipse.org/EclipseLink/DesignDocs/368490和https://wiki.eclipse.org/EclipseLink/Examples/JPA/CacheCoordination

     类似资料:
    • Hibernate还不支持通过判别器策略实现多租户的方法。我们正在考虑在我们的项目中实现这个策略。但是我们对一般的查询性能有些怀疑。查询性能会比单独数据库/模式方法差吗,因为在这种情况下,查询是在多个租户的单个数据模式上运行的?或者在这种情况下,除了创建索引之外,还有什么方法可以提高查询性能? 我们正在考虑采用鉴别器方法,因为最好是进行备份

    • 问题内容: eclipselink(或Hibernate)中的租户是一个很好的概念,可以将数据域彼此分开。我在单表策略中使用eclipselink。 有时有必要从多个租户那里访问数据(例如,出于管理目的)。有什么好办法吗?(我不想遍历所有租户来收集数据…) 例: 我可以使用参数化的实体管理器访问特定租户中的对象: 有没有方便的方法可以查询所有租户?(或者持久性对象的身份仅在单个租户中定义?) 问题

    • 我正计划开发一个多租户应用程序,目前我只是在研究网络上的不同实现,以了解实现此类任务所需的需求。HibernateSpring引导是我计划使用的技术。 从我的阅读资料来看,所有不同的教程都使用相同的方法,即在配置文件中声明数据源,以便在应用程序启动时启动会话工厂,但我真的希望有一个更高级别的应用程序,在那里我可以动态添加租户并输入他们的数据源信息。这样应用程序就可以获得新租户的信息,而无需触摸配置

    • 我们正面临着解决这个问题的艰难时刻!我们正在尝试在不使用默认租户的情况下为Spring Boot服务使用MTA。这意味着当当前上下文中没有租户时,我们希望从我们的CurrentTenantIdentifierResolver实现返回null。这在我们用JavaEE+Hibernate+Deltaspike数据构建的其他服务中运行良好,但在Spring服务启动时失败。 异常消息如下:“由:org.h

    • 全新的,查看wso2 API管理器1.8.0。我为一家拥有多个组织/团队的公司工作,所以建立多租户似乎是合乎逻辑的选择。 按照《快速入门指南》,我首先创建了一个新租户,给它一个“dev.api.myorg.company.net”域,添加了一些用户,我可以登录。我添加了一个API。 我能够使用商店中列出的URL命中endpoint: http://wso2server。公司net:8280/t/d

    • 目前为止,我们已经让用户页面在多租户风格下工作。为使它工作,我们看起来并没有做太多的变化。但请记住,我们正在对一个原来不是多租户的系统作修改。 让我们在 Roles 表应用类似的原则。 再一次,一个租户的用户在不能查看或修改其他租户的角色,每个租户的用户是相互独立工作的。 我们先在 RoleRow.cs 添加 TenantId 属性: namespace MultiTenancy.Administ