首页 > 解决方案 > 春季多租户

问题描述

我有两个数据库:我OraclePostgreSQL多个模式 - 每个客户一个。我需要有机会通过网络请求路由数据源。我尝试使用 Spring AbstractRoutingDatasource,但它仅适用于单一方言。这个任务还有其他解决方案吗?

标签: javaspringhibernatemulti-tenant

解决方案


我找到了解决方案。您可以使用hibernate.dialect属性明确告诉 Hibernate 选择哪种方言。因此,您可以实现自己的方言扩展org.hibernate.dialect.Dialect类,覆盖所有公共方法并将调用委托给特定方言。好处是 HibernateDialect在执行任何数据库请求之前调用 this('s) 方法。在我的具体情况下,我已经使用我的项目所需的方言地图实现了一个自定义方言,现在我可以使用相同的存储库并根据登录用户自由选择 Postgresql、Oracle 或 MySQL


推荐阅读