【发布时间】:2012-10-15 21:27:23
【问题描述】:
我有一个项目,目前在同一数据库服务器上使用 3 个数据库。一个数据库现在已移动到另一台物理服务器,我正在尝试让休眠状态来处理这个问题,但很难确定从哪里开始 - 我应该复制数据源、会话工厂、休眠模板和事务管理器,然后尝试管理这个在代码中?我正在使用 Spring 3 和 Hibernate 3.5。这是常见的事情吗?任何建议将不胜感激。
如果它有助于我的配置目前看起来像这样:
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/DatabaseOne"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<property name="exposeTransactionAwareSessionFactory"><value>true</value></property>
<property name="annotatedClasses">
<list>
<value>domain.DatabaseOneObject</value>
<value>domain.DatabaseTwoObject</value>
<value>domain.DatabaseThreeObject</value>
</list>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
【问题讨论】:
-
以前怎么管理3个数据库?我假设您已经在使用 3 个数据源,因为据我所知,一个数据源只能与数据库一起使用。
-
我不确定我是否对数据库而不是目录使用了不正确的术语。目前我用
@Table(name="DatabaseTwoObject", catalog="DatabaseTwo")注释域对象仍然使用单个数据源 -
为什么将数据库移动到其他位置?
-
我们每个客户端都有一个数据库服务器 - 每个服务器 3 个数据库,4 个客户端。所有服务器的瓶颈是 DatabaseThree,因此我们现在有第 5 个(高性能)服务器来托管 DatabaseThree,而其他 4 个服务器现在将有 2 个数据库
标签: java database spring hibernate sessionfactory