【发布时间】:2011-04-05 21:06:06
【问题描述】:
我们有多个数据库具有相同架构,但每个数据库中的数据不同。我们正在创建一个会话工厂来处理这个问题。
问题是直到运行时我们才知道我们将连接到哪个数据库,什么时候我们可以提供它。但是在启动以获取工厂构建时,我们需要使用该模式连接到数据库。我们目前通过在已知位置创建架构并使用它来做到这一点,但我们想删除该要求。
在不指定连接的情况下,我无法找到创建会话工厂的方法。我们不希望能够使用没有参数的 OpenSession 方法,这没关系。
有什么想法吗? 谢谢 安迪
【问题讨论】:
-
为什么不在运行时在
Configuration对象中提供连接详细信息,而不是在编译时在配置文件中提供? -
你为什么这样做?我很好奇……
-
@Kent:我们做到了,问题是我们在构建工厂时(在启动时)我们实际上并不需要连接,而是构建它以便用户无需等待当他们到达真正打开连接的地步时。
-
@Pierre:可扩展性和正常运行时间。相同的数据最终会出现在多个地方,但是流量较高的客户可能会拥有自己的服务器,而流量较低的客户可以共享,而且一个系统出现故障并不会让所有人都崩溃。
-
如果您有一个具有复制功能的数据库集群,则不必有 2 个连接字符串。检查这个答案:stackoverflow.com/questions/751634/…