0

AbstractPlatformTransactionManager类中,getTransaction()方法调用doGetTransaction(). 但是,我无法在任何地方找到此方法的实现。它的实施在哪里,它有什么作用?

4

1 回答 1

1

您将doGetTransaction在具体的事务管理器实现中找到实现。如果您在以下代码中定义了您的事务管理器spring-config.xml

<bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
...
</bean>

doGetTransaction您将获得in的具体实现HibernateTransactionManager

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

以下语句是从HibernateTransactionManager#doGetTransaction doc 复制的:

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

返回的对象应包含有关任何现有事务的信息,即在事务管理器上的当前 getTransaction 调用之前已经开始的事务。因此,doGetTransaction 实现通常会查找现有事务并将相应的状态存储在返回的事务对象中。

于 2013-11-14T12:45:06.303 回答