我一直在阅读 hibernate 中的 Multi-Tenancy 和 stackoverflow 中的几篇文章,但它们似乎没有解决我的要求,所以在这里。我正在研究基于 SAAS 的应用程序模型,其中我有一个应用程序由多个客户提供服务,并且对于每个客户,都会有一个独立的租户数据库实例 (postgresSql)。除此之外,我还有一个主数据库,用于对用户进行身份验证并确定它属于哪个租户数据库,考虑这个主数据库将包含诸如租户数据库的连接 URL 之类的信息。
当用户登录时,我将使用主数据库对其进行身份验证,获取连接 URL 等租户数据库信息,并连接到该数据库,并通过该数据库为所有用户请求提供服务。
考虑到我可以在 hibernate 配置文件中定义多个 sessionfactories,这将使它在应用程序开发期间成为静态的,相反我想通过读取信息为用户所属的各个租户数据库动态创建 sessionfactories来自 master 数据库的连接 URL。
此外,还有一种情况是我必须维护主数据库和租户数据库的 session 工厂,因为我必须在用户期间将用户添加到主数据库和租户数据库中创作。
任何人都可以帮助解决这一要求吗?
最佳答案
我会定义两个 session 工厂,一个用于主数据库,一个用于其他以假值开头的数据库。 this可以帮助您了解如何在运行时更改数据源。
最后,threadlocal 可以帮助您在调用之间存储数据。
希望对您有所帮助。
关于database - 使用 Hibernate 和 Spring 根据用户登录连接到租户数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20628079/