doGetTransaction()的实现

时间:2013-11-14 11:46:47

标签: java spring spring-transactions

AbstractPlatformTransactionManager课程中,getTransaction()方法调用doGetTransaction()。但是,我无法在任何地方找到此方法的实现。它的实施在哪里以及它做了什么?

1 个答案:

答案 0 :(得分:1)

您将在具体的事务管理器实现中找到doGetTransaction的实现。如果您的事务管理器在spring-config.xml

中定义如下
<bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
...
</bean>

您将在doGetTransaction中获得HibernateTransactionManager的具体实施。

doGetTransaction实现通常会查找现有事务并在返回的事务对象中存储相应的状态。

以下语句是从HibernateTransactionManager#doGetTransaction doc:

复制的
  

返回的对象通常是特定于具体的   事务管理器实现,承载相应的事务   以可修改的方式陈述。这个对象将被传递给   其他模板方法(例如doBegin和doCommit),直接或   作为DefaultTransactionStatus实例的一部分。

     

返回的对象应包含有关任何现有的信息   事务,即之前已经启动的事务   事务管理器上的当前getTransaction调用。   因此,doGetTransaction实现通常会寻找   现有的事务和存储在返回的对应状态   交易对象。