加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:19:46 所属栏目:大数据 来源:网络整理
导读:首先,让我解释一下嵌套事务的含义. 示例:在主类中说,我们调用method1并使用jdbc [Transaction1]创建客户.尚未提交.现在,我们在主类中调用method2,并为刚刚创建的customer [Transaction2]创建帐户.现在提交.根据您的解释,这两个事务都将被视为一个事务的一部

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

示例:在主类中说,我们调用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中,您应该使用两个连接并独立管理它们上的事务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读