春季-如何在JDBC中实现嵌套事务?

前端之家收集整理的这篇文章主要介绍了春季-如何在JDBC中实现嵌套事务? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先,让我解释一下嵌套事务的含义.

示例:在主类中说,我们调用method1并使用jdbc [Transaction1]创建客户.尚未提交.现在,我们在主类中调用method2,并为刚刚创建的customer [Transaction2]创建帐户.现在提交.根据您的解释,这两个事务都将被视为一个事务的一部分(因为一个连接最多可以有一个事务).直到这里,如果我们比较上面的情况,就像Spring中的propagation_required.那是正确的吗?

现在,如果我们只想提交transaction2而不是一个.然后,这种情况类似于Spring中的propagation_Nested.那是对的吗?

如果上述两个假设都是正确的,我们如何在JDBC中实现嵌套事务?

最佳答案
这不完全是嵌套事务的工作方式.如果回滚事务1,事务2也将回滚.使用嵌套事务,您可以回滚事务2并仍然提交事务1.

在JDBC中,您可以使用保存点来实现这种效果.您可以在创建帐户之前调用Connection.setSavepoint(),如果要回滚该操作但仍提交客户创建,则可以回滚到该保存点.

如果您希望能够完全独立地提交/回滚两个事务(例如Spring REQUIRES_NEW),则在JDBC中,您应该使用两个连接并独立管理它们上的事务.

猜你在找的Spring相关文章