我们有一个要求,其中我们需要为不同的Teradata数据库用户提供多个数据源。现在,对于这些不同的数据源,我们如何配置多个事务管理器。

根据数据库级别给定的特权和优先级,我们有不同的数据库用户。建议我们如何有效地使用spring配置事务管理。

最佳答案

您可以像这样定义几个transactionManager类型的bean:

<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 })


安杰洛

关于java - 如何使用Spring + Teradata配置多个事务管理器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22966886/

10-09 14:48