实际在寻找PROPAGATION_NESTED(如果存在当前事务,则在嵌套事务中执行)与PROPAGATION_Required(支持当前事务)之间的区别。
下面是简单的用例
例如,在主类中我们调用method1并使用jdbc [Transaction1]创建客户。尚未提交。现在我们在主类中调用method2,并为刚刚创建的客户[Transaction2]创建帐户。现在提交。我们可以将事务2称为嵌套事务。
根据我现在的理解,如果我们将交易定义定义为PROPAGATION_NESTED
事务2将被视为嵌套,但是如果我们将其定义为PROPAGATION_Required,它将支持当前事务。那么嵌套和必需之间有什么区别?
最佳答案
PROPAGATION_NESTED只能与DataSourceTransactionManager
和JDBC3驱动程序一起使用。它使用保存点以便能够回滚事务的某些部分(即,在Spring术语中构成嵌套事务的部分)。请参阅javadoc of Connection以了解保存点如何工作。
要求是完全不同的。这仅意味着:如果已经存在事务,请执行此事务中的工作;否则,开始一个新事务,执行工作,然后提交事务。
关于spring - PROPAGATION_NESTED vs PROPAGATION_ Spring 需要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683929/