2014-04-09 69 views
1

我們有一個要求,我們需要爲不同的teradata數據庫用戶提供多個數據源。現在針對這些不同的數據源,我們如何配置多個事務管理器。如何使用Spring + Teradata配置多個事務管理器

根據數據庫級別的權限和優先級,我們擁有不同的數據庫用戶。建議我們如何有效地使用spring配置事務管理。

+0

你有什麼試過? – Thomas

+0

我們對Spring jdbc模板使用了DataSourceTransactionManager,對於hibernate entitymanager配置使用了JPAtransactionmanager。我們有一個數據源附有JPA實體管理器,一個數據源附有Spring JDBCTemplate。 – Nik

回答

0

你可以這樣定義類型的TransactionManager的幾個豆:

<bean id="hibernateTransactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="hibernateSessionFactory" /> 
</bean> 

<bean id="hibernateTransactionManager2" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="hibernateSessionFactory" /> 
</bean> 

<bean id="hibernateTransactionManager3" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="hibernateSessionFactory" /> 
</bean> 

然後在@Transactional註釋春天,你可以使用這樣定義的事務管理器之一:

@Transactional(value = "hibernateTransactionManager", rollbackFor = { MyException.class }) 

安傑洛