使用Hibernate和Spring按用户登录连接到租户数据库

Vin*_*ole 5 database spring hibernate sessionfactory multi-tenant

我一直在阅读hibernate中的多租户和来自stackoverflow的几个帖子,但似乎它们没有满足我的要求,所以在这里.我正在开发一个基于SAAS的应用程序模型,其中我有一个应用程序由多个客户提供服务,并且对于每个客户,将有一个独立的租户数据库实例(postgresSql).除此之外,我还有一个主数据库,用于验证用户并识别它所属的租户数据库,请考虑此主数据库将具有与租户数据库的连接URL之类的信息.

当用户登录时,我将使用master数据库对其进行身份验证,获取租户数据库信息(如连接URL)并连接到该数据库并通过该服务器提供所有用户请求.

考虑到我可以在hibernate配置文件中定义多个会话事件,这将使其在应用程序开发期间保持静态,而是我想通过读取连接的信息为用户所属的相应租户数据库动态创建会话事件来自master数据库的URL.

此外,还有一个场景,其中我将不得不维护主数据库和租户数据库的会议结果,因为将需要在用户创建期间我必须将用户添加到主数据库和租户数据库.

任何人都可以帮助解决这个问题吗?

Pir*_*ino 1

我将定义两个会话工厂,一个用于主数据库,一个用于以假值开头的其他数据库。可以帮助您了解如何在运行时更改数据源。

最后,threadlocal 可以帮助您在调用之间存储数据。

希望能帮助到你。