栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

多用户数据源-Spring + Hibernate

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多用户数据源-Spring + Hibernate

可能 错了(严格)

SessionFactory
每个数据库必须有一个数据库(如某些资源所建议的那样):

动态数据源路由

我将花一些时间明天重新阅读所有内容(坦白地说,我并没有获得所有详细信息)并完全理解这种设置的含义(尽管似乎很明显,它将破坏二级缓存) 。我稍后再讲。


我正在编写一个支持多个用户的Web应用程序。每个用户都有自己的数据库-使用H2。所有数据库架构都是相同的。

我不知道这将如何扩展…您有多少用户?您如何运行H2,采用哪种模式?

因此,我坚持如何将用户的数据库与该用户相关联-
也许将其与HTTPSession关联,并扩展spring的AbstractRoutingDataSource?

您必须构建一个

SessionFactory
每个用户,并将其与登录的用户相关联(在中
Map
,使用登录名作为键),然后
Session
从给定的中获取一个
SessionFactory
。将生命周期绑定
SessionFactory
到HTTP会话似乎是一个好主意(以节省一些内存),但是我不确定Spring在这里是否会很有帮助。我可能是错的,但是
HibernateUtil
类的变化和完全编程的方法看起来更容易。我不确定您是否需要每个用户多个连接。

但这不会影响Hibernate的缓存吗?

什么缓存?

另一种方法是为每个数据源都配备一个SessionFactory,即使每个数据源的架构都相同…所以我认为这是浪费。

哦,这很浪费,但这就是您想要做的(每个用户一个数据库)。而且您别无选择(

SessionFactory
每个数据库需要一个)。为什么实际上每个用户需要一个数据库?您确定这是一个明智的决定吗?正如已经暗示的那样,这意味着很多麻烦,无法很好地扩展,增加了复杂性等。为什么不使用单个数据库并将数据与用户相关联呢?

无论如何,选择数据源都必须是动态的-不能在上下文文件中对其进行预配置,因为每个新用户都将创建自己的数据库。有没有现有的框架/解决方案?

据我所知。这也是为什么我认为您必须以编程方式执行所有操作的原因。

我对Hibernate Shards不太了解,也许行得通吗?

鉴于您的应用程序的动态需求,我看不出它有什么帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号