java - 春季多租户
问题描述
我有两个数据库:我Oracle
有PostgreSQL
多个模式 - 每个客户一个。我需要有机会通过网络请求路由数据源。我尝试使用 Spring AbstractRoutingDatasource
,但它仅适用于单一方言。这个任务还有其他解决方案吗?
解决方案
我找到了解决方案。您可以使用hibernate.dialect
属性明确告诉 Hibernate 选择哪种方言。因此,您可以实现自己的方言扩展org.hibernate.dialect.Dialect
类,覆盖所有公共方法并将调用委托给特定方言。好处是 HibernateDialect
在执行任何数据库请求之前调用 this('s) 方法。在我的具体情况下,我已经使用我的项目所需的方言地图实现了一个自定义方言,现在我可以使用相同的存储库并根据登录用户自由选择 Postgresql、Oracle 或 MySQL
推荐阅读
- sitecore - sitecore 业务工具中的某些产品未出现在网站中
- kubernetes - 想要在 Kubernetes 的特定命名空间中向少数用户授予管理员权限
- c# - 使用 C# 将 MS Powerpoint 演示文稿转换为视频
- spring-boot - 如何在 Spring Boot 中将用户的 id 插入到产品中?
- python - 我正在尝试编写一个程序,该程序将在特定时间打开一个网站并单击选项。(我是初学者)
- java - 如何在对象中转换具有重复字段 iava 8 的 xml
- django - django 表单清理方法仅返回最后一个对象
- sql - oracle如何解析clob数据?
- ibm-mq - 如何使用 setmqauth 关闭 setall
- ios - Swift 检查权限是否有权保存 UIImageWriteToSavedPhotosAlbum?