春季多租户

时间:2019-06-12 13:34:33

标签: java spring hibernate multi-tenant

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

1 个答案:

答案 0 :(得分:0)

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