我正在为我的 Web 应用程序寻找多租户解决方案。
我想用单独的架构模型实现一个应用程序。我想每个会话都有一个数据源。为了做到这一点,我将数据源和实体管理器放在会话范围内,但这不起作用。我正在考虑在用户输入用户名和密码以及tenantId时加载data-access-context.xml(其中包括数据源和其他存储库bean)文件。我想知道这是否是一个好的解决方案?
多租户是一个有点棘手的主题,它必须在 JPA 提供者端处理,以便从客户端代码的角度来看没有或几乎没有任何变化。日食链接支持多租户(请参阅:EclipseLink/开发/Indigo/多租户), 休眠最近刚刚添加的。
另一种方法是使用AbstractRoutingDataSource
, see: Hibernate 中的多租户.
使用会话范围风险太大(而且您最终将拥有数千个数据库连接,每个会话/用户的数据库连接很少。最后EntityManager
并且底层数据库连接不可序列化,因此您无法迁移会话并正确扩展应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)