У меня две базы данных по той же схеме.Несколько менеджеров транзакций за один сеансFactory
Приложение hibernate 3.2/Spring 3 имеет один источник данных (через jndi) для каждой базы данных и один менеджер транзакций (HibernateTransactionManager) для каждого источника данных.
Вопрос: Могу ли я использовать один экземпляр фабрики сеансов, который должен использовать источник данных, связанный с текущей транзакцией?
Предположим, что существуют следующие методы.
@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
}
менеджеры trnsaction:
<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>