Spring 引导 2 休眠多模式
Spring boot 2 hibernate multiple schema
我有一个数据库 (MySql) 和几个模式 (schema_a、schema_b、schema_c)。模式具有相同的表,完全相同。
当前架构取决于当前用户(会话)数据。例如,当前用户来自公司A,则当前架构为"schema_a"。因此,EmployeeRepository.findAll() 方法从模式 "schema_a".
中获取数据
在 spring 启动 2 的休眠状态下,是否可以动态更改当前的 entityManager?如果是,如何?
求助
你说的是多租户架构。
您可以根据一些身份验证信息设置 catalog
(在您的情况下是模式)。
你将如何做到这一点是实现一个 interceptor
来确定需要设置什么模式,然后将正确的 "tenant" 设置为 TheardLocal
(你的请求是 运行).我使用这种方法取得了巨大的成功,我相信它正是您正在寻找的东西。
我可以在这里写出来,但是没有必要继续重复已经存在的内容。有一篇很好的文章,是我解决问题的灵感,建议你看看here.
我有一个数据库 (MySql) 和几个模式 (schema_a、schema_b、schema_c)。模式具有相同的表,完全相同。
当前架构取决于当前用户(会话)数据。例如,当前用户来自公司A,则当前架构为"schema_a"。因此,EmployeeRepository.findAll() 方法从模式 "schema_a".
中获取数据在 spring 启动 2 的休眠状态下,是否可以动态更改当前的 entityManager?如果是,如何?
求助
你说的是多租户架构。
您可以根据一些身份验证信息设置 catalog
(在您的情况下是模式)。
你将如何做到这一点是实现一个 interceptor
来确定需要设置什么模式,然后将正确的 "tenant" 设置为 TheardLocal
(你的请求是 运行).我使用这种方法取得了巨大的成功,我相信它正是您正在寻找的东西。
我可以在这里写出来,但是没有必要继续重复已经存在的内容。有一篇很好的文章,是我解决问题的灵感,建议你看看here.