同じスキームの 2 つのデータベースがあります。
私の休止状態 3.2/Spring 3 アプリケーションには、データベースごとに 1 つのデータソース (jndi 経由) と、データソースごとに 1 つのトランザクション マネージャー (HibernateTransactionManager) があります。
質問: 現在のトランザクションに関連付けられたデータソースを使用するセッション ファクトリのインスタンスを 1 つ使用できますか?
以下の方法があるとします。
@Transactional(readOnly = true, value = "tmDBOne")
public String db1() throws IOException {
dao.execute(); // dao uses injected session factory
}
@Transactional(readOnly = true, value = "tmDBTwo")
public void db2() throws IOException {
dao.execute(); // dao uses injected session factory
}
取引マネージャー:
<bean id="tmDBOne"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="dsDBOne/>
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="tmDBTwo"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="dsDBTwo/>
<property name="sessionFactory" ref="sessionFactory"/>
</bean>