1

我有一个数据库(MySql)和几个模式(schema_a、schema_b、schema_c)。模式具有相同的表,相同。

当前模式取决于当前用户(会话)数据。例如,当前用户来自 A 公司,则当前架构为“schema_a”。因此,EmployeeRepository.findAll() 方法从模式“schema_a”中获取数据。

在使用 spring boot 2 休眠时,是否可以动态更改当前 entityManager?如果是,如何?

请帮忙

4

1 回答 1

1

你所说的被称为多租户架构。

您可以catalog根据一些身份验证信息设置(即您的情况下的架构)。

你将如何做到这一点是实现一个interceptor确定需要设置什么架构,然后将正确的“租户”设置为TheardLocal(运行您的请求的)。我使用这种方法取得了巨大的成功,我相信这正是您正在寻找的。

我可以在这里写出来,但是没有必要重复已经存在的内容。有一篇很好的文章,它是我解决方案的灵感,我建议你看看这里

于 2019-03-19T09:33:37.500 回答