【发布时间】:2011-04-20 16:34:08
【问题描述】:
我正在编写一个支持多用户的网络应用程序。每个用户都有自己的数据库 - 使用 H2。所有数据库架构都相同。
我希望在这个应用程序中使用 Spring + Hibernate。
所以我被困在如何将用户的数据库与该用户相关联 - 可能在 HTTPSession 中将其关联,并扩展 spring 的 AbstractRoutingDataSource?但这不会影响 Hibernate 的缓存吗?另一种方法是每个数据源都有一个 SessionFactory,即使每个数据源的架构都是相同的......所以我认为这是一种浪费。
无论如何选择数据源都需要是动态的——它们不能在上下文文件中预先配置,因为每个新用户都会创建自己的数据库。有没有现成的框架/解决方案?
我对 Hibernate Shards 了解不多,也许这行得通?
【问题讨论】:
标签: java spring hibernate jdbc multi-tenant