java – 使用Spring JPA的多租户
作者:互联网
我正在寻找我的Web应用程序的多租户解决方案.
我想用Separate Schema Model实现一个应用程序.我想每个会话都有一个数据源.为了做到这一点,我把datasource和entitymanger放在会话范围内,但那不起作用.我想在用户输入用户名和密码以及tenantId时加载data-access-context.xml(包括数据源和其他存储库bean)文件.我想知道这是否是一个很好的解决方案?
解决方法:
多租户是一个有点棘手的主题,它必须在JPA提供者端处理,以便从客户端代码的角度来看,没有或几乎没有任何变化. eclipselink支持多租户(见:EclipseLink/Development/Indigo/Multi-Tenancy),hibernate最近刚添加它.
另一种方法是使用AbstractRoutingDataSource,参见:Multi tenancy in Hibernate.
使用会话范围风险太大(同样,最终会有数千个数据库连接,每个会话/用户都很少.最后,EntityManager和底层数据库连接不可序列化,因此您无法迁移会话并正确扩展应用程序.
标签:java,spring,jpa,multi-tenant,eclipselink,hibernate 来源: https://codeday.me/bug/20191008/1871357.html