首页 > 解决方案 > Hibernate Multitenancy,每个租户使用不同的表

问题描述

有没有办法用hibernate定义应该在哪个租户中创建哪些实体?因为对于不同的租户,表是不一样的。

第二个问题,是否可以配置(也使用休眠)我想从租户 1 访问租户 2 表。

我使用嵌入式 h2 数据库。我想用 hibernate.hbm2ddl.auto 自动创建表,并用 flyway 迁移文件填充这些表。

标签: javaspringhibernateh2multi-tenant

解决方案


好吧,我在 Spring 中使用了多租户架构,我可以帮助你完成我正在做的事情。

1:如果您对不同的租户有不同的表,您可以在您的实体上使用 TenantFilter,或者您可以在 schema.sql 中定义您的自定义模式并使用 JdbcTemplate 来执行 SQL。

我更喜欢第二个选项而不是第一个选项,因为它保证了正确的模式创建。

2:您可以使用 TenantContext 从租户 1 切换到租户 2,完成处理后,您可以切换回租户 1。

在 GitHub 上有很多关于 spring boot 多租户的演示项目,你可以在那里看看。


推荐阅读