相关疑难解决方法(0)

多用户数据源 - Spring + Hibernate

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

我希望将Spring + Hibernate用于此应用程序.

所以我坚持如何将用户的数据库与该用户关联 - 可能在HTTPSession中关联它,并扩展spring的AbstractRoutingDataSource?但这不会影响Hibernate的缓存吗?另一种方法是使用每个数据源的SessionFactory,即使每个数据源的模式都相同......所以我认为这是一种浪费.

无论如何选择数据源都需要是动态的 - 它们不能在上下文文件中预先配置,因为每个新用户都将创建自己的数据库.有没有现有的框架/解决方案?

我不太了解Hibernate Shards,也许这有用吗?

java spring hibernate jdbc multi-tenant

16
推荐指数
1
解决办法
8658
查看次数

NHibernate:一个基类,几个映射

我对NHibernate相对比较新,但是我已经将它用于最后几个程序而且我很喜欢.我遇到了需要将4-5个数据库中的数据聚合到一个数据库中的情况.具体来说,它是序列号数据.每个数据库都有自己的映射文件,但最终实体都共享相同的基本结构(Serial类).

我理解NHibernate希望每个类都有一个映射,所以我最初的想法是拥有一个基本的Serial Class,然后为每个不同的数据库继承它,并创建一个唯一的映射文件(继承的类将没有内容).这应该非常适合抓取所有数据并填充对象.我想要做的是使用基类映射将这些继承的类(不确定正确的术语是什么)保存到基类表中.

问题是我不知道如何强制NHIbernate为对象使用特定的映射文件.使用'session.save()'时,将继承的类转换为基类没有任何作用(它抱怨没有映射).

有没有办法明确指定使用哪个映射?或者是否只有一些OOP主体我缺少更具体地将继承的类转换为基类?或者这个想法是个坏主意.

关于NHibernate(第8章)我可以找到的所有继承内容似乎都不完全适用于这个函数,但我可能是错的(每个具体类的表看起来可能有用,但我可以'关于NHibernate如何确定要做什么,完全包围我的头.

c# oop nhibernate nhibernate-mapping

6
推荐指数
1
解决办法
4107
查看次数