Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多个Hibernate数据源_Java_Database_Spring_Hibernate_Sessionfactory - Fatal编程技术网

Java 多个Hibernate数据源

Java 多个Hibernate数据源,java,database,spring,hibernate,sessionfactory,Java,Database,Spring,Hibernate,Sessionfactory,我有一个项目,目前在同一个数据库服务器上使用3个数据库。其中一个数据库现在已被移动到另一个物理服务器,我正试图让hibernate来处理这一问题,但仍在努力确定从何处开始—我是否应该复制datasource、sessionfactory、hibernatetemplate和transaction manager,然后尝试在代码中管理它们?我正在使用Spring3和Hibernate3.5。这是一件平常的事吗?任何建议都将不胜感激 如果有帮助,我的配置当前如下所示: <bean id="da

我有一个项目,目前在同一个数据库服务器上使用3个数据库。其中一个数据库现在已被移动到另一个物理服务器,我正试图让hibernate来处理这一问题,但仍在努力确定从何处开始—我是否应该复制datasource、sessionfactory、hibernatetemplate和transaction manager,然后尝试在代码中管理它们?我正在使用Spring3和Hibernate3.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>

真的
domain.DatabaseOneObject
domain.DatabaseTwoObject
domain.DatabaseThreeObject

也许您可以使用Sequoia(以前)将不同数据库中的模式集群到一个逻辑数据库中。

以前您如何管理3个数据库?我假设您已经使用了3个数据源,因为据我所知,一个数据源只能用于一个数据库。我不确定是否在数据库而不是目录中使用了错误的术语。目前,我使用
@Table(name=“DatabaseTwoObject”,catalog=“databasetwoo”)
注释域对象,但仍然使用单个数据源。为什么要将数据库移动到其他位置?我们每个客户端有一个db服务器-每个服务器有3个数据库,4个客户端。所有服务器上的瓶颈都是DatabaseThree,因此我们现在有第5台(高性能)服务器来承载DatabaseThree,其他4台服务器上现在将有2个数据库