2012-10-25 138 views
1

我有一個項目,目前在同一個數據庫服務器上使用3個數據庫。其中一個數據庫現在已經轉移到另一臺物理服務器上了,我試圖讓hibernate來處理這個問題,但努力解決從哪裏開始 - 我應該複製數據源,sessionfactory,hibernatetemplate和事務管理器,然後嘗試管理這個在代碼中?我正在使用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> 
+1

如何管理3個數據庫?我假設你已經在使用3個數據源,因爲據我所知,一個數據源只能用於數據庫。 –

+0

我不確定我是否使用了數據庫而不是目錄的錯誤術語。目前我使用@Table(name =「DatabaseTwoObject」,catalog =「DatabaseTwo」)對域對象進行註釋,仍然使用單個數據源 – James

+0

爲什麼數據庫被移動到其他位置? –

回答

0

也許你可以使用紅杉(以前C-JDBC)從diferent數據庫的集羣架構成一個邏輯數據庫。