我们正在开发一个 Grails Web 应用程序,其中需要将不同的用户(客户)指向仅包含其组织数据的不同数据库。不幸的是,分离的数据库是必需的,我们被要求只能为每个人提供一个 Web 应用程序。
但是,Grails 只需要一个数据源池连接到一个数据库。
我们希望能够根据登录的用户在每个会话中切换数据库连接,在 BootStrap init() 期间从属性文件中读取不同的连接。
到目前为止,我们一直无法找到似乎没有竞态条件的解决方案,没有我们可以找到的插件,而且它似乎也不是一个流行的问题。
我们最有希望的是创建一个自定义动态数据源,在 Bootstrap 中设置以定义一个组织->数据源的映射,并利用 Bootstrap 中定义的闭包在 GORM 行为之前找到合适的数据源,但这似乎会导致出现竞争条件是延迟。
有谁知道如何合法地执行这种切换?
谢谢