java - Hibernate Multitenancy,每个租户使用不同的表
问题描述
有没有办法用hibernate定义应该在哪个租户中创建哪些实体?因为对于不同的租户,表是不一样的。
第二个问题,是否可以配置(也使用休眠)我想从租户 1 访问租户 2 表。
我使用嵌入式 h2 数据库。我想用 hibernate.hbm2ddl.auto 自动创建表,并用 flyway 迁移文件填充这些表。
解决方案
好吧,我在 Spring 中使用了多租户架构,我可以帮助你完成我正在做的事情。
1:如果您对不同的租户有不同的表,您可以在您的实体上使用 TenantFilter,或者您可以在 schema.sql 中定义您的自定义模式并使用 JdbcTemplate 来执行 SQL。
我更喜欢第二个选项而不是第一个选项,因为它保证了正确的模式创建。
2:您可以使用 TenantContext 从租户 1 切换到租户 2,完成处理后,您可以切换回租户 1。
在 GitHub 上有很多关于 spring boot 多租户的演示项目,你可以在那里看看。