我試圖從Spring/Hibernate中的同一個Java類同時訪問兩個數據庫。它們在結構上是相同的。並且它們都駐留在相同的mySql實例中。我會稱它們爲「myDatabaseA」和「myDatabaseB」。Spring/Hibernate在同一個mySQL中訪問不同的數據庫
我的計劃是將DAO和實體類複製到不同的包中,例如「com.entities.packageA」和「com.entities.packageB」。在實體中,我將使用表註釋的「目錄」關鍵字來消除數據庫的歧義,例如訪問myDatabaseA當
<!-- Session factory bean -->
<b:bean id="sessionFactory" class="com.mycompany.spring.ExtendedAnnotationSessionFactoryBean"">
<b:property name="dataSource" ref="dataSource" />
<b:property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
<b:property name="hibernateProperties" ref="hibernateProperties" />
<b:property name="entityInterceptor" ref="baseEntityInterceptor" />
<b:property name="basePackages">
<b:list>
<b:value>com.entities.myPackageA</b:value>
<b:value>com.entities.myPackageB</b:value>
</b:list>
</b:property>
</b:bean>
在代碼中,我:
@Entity
@Table(catalog="myDatabaseB", name = "myTable1")
最後,在會話工廠bean時,我會嘗試在「basePackages」屬性指定兩個數據庫實體如下當訪問myDatabaseB時,將使用「myPackageA」和myPackageB中的實體和道數。
這是否有意義?我對Spring/Hibernate很陌生,所以這可能會脫離基礎。
它與mySql實例相同,但是該實例中的數據庫不同。我將如何指定我在客戶端代碼中使用哪個會話? –